Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Android 无法分析JSON响应_Android_Json - Fatal编程技术网

Android 无法分析JSON响应

Android 无法分析JSON响应,android,json,Android,Json,我有类似这样的JSON响应。我尝试了很多,但无法解析值 这是我的真实反应 {"ResponseCode":"000","ResponseDescription":"Successful","SystemServiceID":["0000"],"SystemServiceName":["Test"],"ProductID":["000"],"ProductName":["Test"],"ProductDescription":["Test product"],"MinimumValue":[100

我有类似这样的JSON响应。我尝试了很多,但无法解析值

这是我的真实反应

{"ResponseCode":"000","ResponseDescription":"Successful","SystemServiceID":["0000"],"SystemServiceName":["Test"],"ProductID":["000"],"ProductName":["Test"],"ProductDescription":["Test product"],"MinimumValue":[10000],"MaximumValue":[500000],"ImageURL":[null],"Country":["AAAA"],"CompanyID":["1"],"CompanyName":["Test"],"FieldLevel":["2"],"FieldInfo":["{\"Field1\":{\"Field Name\":\"Phone Number\",\"Field Type\":\"Number\",\"Validation\":{\"Min\":\"4\",\"Max\":\"8\"}},\"Field2\":{\"Field Name\":\"Email\",\"Field Type\":\"String\",\"Validation\":{\"Regular Expression\":\"abcd\",\"Min Length\":\"10\",\"Max Length\":\"20\"}}}"]}
基于此,我能够解析除下面的字段之外的所有字段

{
    "Field1":
    {
            "Field Name":"Phone Number",
            "Field Type":"Number",
            "Validation":{"Min":"4","Max":"8"}
    },

    "Field2":
    {
            "Field Name":"Email",
            "Field Type":"String",
            "Validation":{"Regular Expression":"abcd","Min Length":"10","Max Length":"20"}
    }
}
我还想获取
Validation:{“Min”:“4”,“Max”:“8”}
这个字段的值。就像它的最大值是4,最小值是8一样

任何帮助都将不胜感激


提前感谢…:)

以下是读取最小值和最大值的代码

JSONObject parentObject = new JSONObject(Json_String); 

JSONObject field1 = parentObject.getJSONObject("Field1"); 
JSONObject validation = field1.getJSONObject("Validation"); 

String min = validation.getString("Min"); 
String max = validation.getString("Max"); 
假设您的JSON字符串格式正确

因为在您的响应中,您没有将
“\”
转换为JSON,所以您需要对其进行一些修改,如(更新:这里似乎不需要替换)


如果可能的话,logcat tooI希望您的真实响应中的文件名不会出现断行。这会导致断行。是来自服务器的完整响应,还是您只是复制了其中的一部分并粘贴到此处,这是无效的json@PankajKumar请参阅更新的问题…您的行json.replace(“\\”,“”);在这个例子中什么都不做。@rekire是的,你是正确的。我验证了这一点并更新了我的答案。非常感谢你纠正我。再次感谢
String json = "{\"Field1\":{\"Field Name\":\"Phone Number\",\"Field Type\":\"Number\",\"Validation\":{\"Min\":\"4\",\"Max\":\"8\"}},\"Field2\":{\"Field Name\":\"Email\",\"Field Type\":\"String\",\"Validation\":{\"Regular Expression\":\"abcd\",\"Min Length\":\"10\",\"Max Length\":\"20\"}}}";

// json.replace("\\", ""); // I verified that parsing works well without replacement too

try {
     JSONObject parentObject = new JSONObject(json);
     JSONObject field1 = parentObject.getJSONObject("Field1"); 
     JSONObject validation = field1.getJSONObject("Validation"); 

     String min = validation.getString("Min"); 
     String max = validation.getString("Max");

     System.out.println("Min :::::::  " + min);
     System.out.println("MAx ::::::: " + max);
    } catch (JSONException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}