我试图解析我的服务器返回给我的应用程序的多个JSON数组。
来自服务器的返回消息的结构如下所示:
[json objects] [json objects]
返回消息:
[{ “纬度”: “44.33”, “经度”: “44.33”, “名称”: “测试1”, “通知”: “真”}] [{ “纬度”: “44.33”,“经度“:” 44.33" , “名称”: “TEST2”, “通知”: “假”}]
现在我尝试解析这个并获得Notification状态(true / false)但我没有得到我需要的项目。
try {
JSONArray jr = new JSONArray(answer);
JSONObject jb = (JSONObject)jr.getJSONObject(0);
JSONArray nof = jb.getJSONArray("Notification");
Log.d("Json", String.valueOf(nof));
}catch(Exception e)
{
e.printStackTrace();
}
如果有人能帮助我了解我需要做什么来实现我的使命,我会很高兴。
答案 0 :(得分:2)
您的Json回复无效......
这是有效的JSON:
[
[{
"latitude": "44.33",
"longitude": "44.33",
"name": "test1",
"Notification": "true"
}],
[{
"latitude": "44.33",
"longitude": "44.33",
"name": "test2",
"Notification": "false"
}]
]
解析它:
try{
JSONArray json = new JSONArray(answer);
for(int i=0;i<json.length();i++){
JSONArray array = json.getJSONArray(i);
for(int i=0;i<array.length();i++){
JSONObject object = array.getJSONObject(i);
String Notification = object.getString("Notification");
}
}
}
catch (JSONException e){
e.printStackTrace();
}
答案 1 :(得分:0)
Json响应无法作为整体进行解析。形式上它不是json有效的,有两个json数组连接起来就像没有生成有效的json。
您可以将这些数组包装在一个唯一的json对象中,并且该对象现在可以使用您的代码进行解析。
{"array1":[],"array2":[]}
然后,您可以实例化jsonObject并使用其名称
分别获取每个数组答案 2 :(得分:0)
创建一个响应的POJO,让我们说Notification.java
JSONArray resultArray = response.getJSONArray("result");// your json response
//使用Gson Library by google
编译com.google.code.gson:gson:2.7.0&#39;
List<Notification> notificationList = new Gson().fromJson(String.valueOf(resultArray),Notification.class);