Android 无法分析JSON响应
我有类似这样的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
{"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();
}