使用HashMAP到ArrayList的字符串

用户名

我有一个字符串[{Label_0=Mobile, Phone_0=+212131231}],存储在ArrayList内部HashMap,我需要将其分配到另一个Arraylist获取值,而是得到一个语法错误

List<HashMap<String, String>> phonesArr = new ArrayList<HashMap<String, String>>();
HashMap<String, String> phoneDict = new HashMap<String, String>();

    phoneDict.put(String.format("Label_%d", locali1),PTYPE);
    phoneDict.put(String.format("Phone_%d", locali1),phoneNumber);

   phonesArr.add(phoneDict);

我之所以将其存储在数组中是有原因的,因为一个联系人的电话号码可能是多个。

        ArrayList<HashMap<String, String>> _allPeoplesDictArr = new ArrayList<HashMap<String, String>>();

            HashMap<String, String> personDict = new HashMap<String, String>();

            personDict.put("PhoneNumbers", phonesArr.toString())    //// Value stored as array to string
                                               // [{Label_0=Mobile, Phone_0=+212131231}]

           _allPeoplesDictArr.add(personDict);


                for (int j = 0; j < _allPeoplesDictArr.size(); j++) {
                        String localPhoneStr = _allPeoplesDictArr.get(j)
                                .get("PhoneNumbers");
                        Log.d("localPhoneStr", localPhoneStr);      ///  I dont want to retrieve it as string      

                        List<HashMap<String, String>> localPhoneArr = _allPeoplesDictArr.get(j).get("PhoneNumbers");        //// I  want to retrieve it as array but getting syntax error.


                        if (localPhoneArr.size() > 0) {

                            for (int k = 0; k < localPhoneArr.size(); k++) {

                                HashMap<String, String> userDict = new HashMap<String, String>();

                                userDict.put(
                                        "label",
                                        localPhoneArr.get(k).get(
                                                String.format("Label_%d", k)));
                                userDict.put(
                                        "value",
                                        localPhoneArr.get(k).get(
                                                String.format("Phone_%d", k)));


                            }
                        }
                }


            I am getting syntax error at grabing values  that is now as a JSON `[{Label_0=Mobile, Phone_0=+212131231}]`

                List<HashMap<String, String>> localPhoneArr = _allPeoplesDictArr.get(j).get("PhoneNumbers");
超级这里

该行为List<HashMap<String, String>> localPhoneArr = _allPeoplesDictArr.get(j).get("PhoneNumbers");您提供语法错误,因为它是一个String如果要使用Array它,则必须解析JSON String。您可以在这里找到文档

它应该看起来像这样

String localPhoneStr = _allPeoplesDictArr.get(j).get("PhoneNumbers");
JSONArray phoneArray = new JSONArray(localPhoneStr);

for(int i=0; i<phoneArray.length(); i++){

    JSONObject phone = phoneArray.getJSONObject(i);

    userDict.put("label", phone.getString(String.format("Label_%d", i)));
    userDict.put("value", phone.getString(String.format("Phone_%d", i)));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章