Android解析多个JSON数组

时间:2017-03-24 08:23:05

标签: android json parsing

我试图解析我的服务器返回给我的应用程序的多个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();
  }

如果有人能帮助我了解我需要做什么来实现我的使命,我会很高兴。

3 个答案:

答案 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);