Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串到带有HashMAP的ArrayList_Java_Android_Json_List_Arraylist - Fatal编程技术网

Java 字符串到带有HashMAP的ArrayList

Java 字符串到带有HashMAP的ArrayList,java,android,json,list,arraylist,Java,Android,Json,List,Arraylist,我有一个字符串[{Label\u 0=Mobile,Phone\u 0=+212131231}],存储在HashMap中的ArrayList中,我需要将其分配给另一个ArrayList以获取值,但得到语法错误 List<HashMap<String, String>> phonesArr = new ArrayList<HashMap<String, String>>(); HashMap<String, String> phoneDi

我有一个字符串
[{Label\u 0=Mobile,Phone\u 0=+212131231}]
,存储在
HashMap
中的
ArrayList
中,我需要将其分配给另一个
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);
List phonesArr=new ArrayList();
HashMap phoneDict=新HashMap();
phoneDict.put(String.format(“Label_u%d”,local1),PTYPE);
phoneDict.put(String.format(“Phone_uu%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");
ArrayList\u allPeoplesDictArr=new ArrayList();
HashMap personDict=新的HashMap();
personDict.put(“PhoneNumbers”,phonesArr.toString())///存储为数组到字符串的值
//[{Label_0=手机,Phone_0=+212131231}]
_所有人都可以添加(个人信息);
对于(int j=0;j<_allpeopledictarr.size();j++){
字符串localPhoneStr=\u allPeoplesDictArr.get(j)
。获取(“电话号码”);
Log.d(“localPhoneStr”,localPhoneStr);///我不想将其作为字符串检索
List localPhoneArr=_allPeoplesDictArr.get(j).get(“PhoneNumbers”);///我想将其作为数组检索,但获取语法错误。
if(localPhoneArr.size()>0){
for(int k=0;k
列出localPhoneArr=\u allPeoplesDictArr.get(j.get)(“电话号码”)
向您提供语法错误,因为它是一个
字符串
。如果要从中生成
数组
,必须解析JSON字符串。您可以找到文档

应该是这样的

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)));
}
String localPhoneStr=_allPeoplesDictArr.get(j.get)(“电话号码”);
JSONArray phoneArray=新的JSONArray(localPhoneStr);

例如,(int i=0;ii)如果您能展示一个简短但完整的示例来演示问题,那么会更容易帮助您。例如,我们目前不知道
\u allpeopledictarr
的类型。现在是列表还是列表?因为您有
字符串localPhoneStr=\u allpeopledictarr.get(j).get(“PhoneNumbers”);
列出localPhoneArr=_allpeopledictarr.get(j).get(“PhoneNumbers”);
我更新了我的问题,以便更好地理解_allpeopledictarr.get(j).get(“PhoneNumbers”);这包含带哈希的arraylist,但我无法检索其值。@super qua我知道它是HashMap而不是HashMap,但我没有任何方法来纠正当前分配的问题?感谢Mate提供的逻辑,因为我喜欢它,我将尝试并希望它能根据我的需要工作。需要对userDict.p进行一些小的修改ut(“label”,phone.getString(String.format(“label_%d”,i));userDict.put(“value”,phone.getString(String.format(“phone_%d,i)));很高兴它对您有所帮助。我更新了答案,将您的修改包括在内,以供其他人查看