java - Java中如何解析这种类型的JSON?

标签 java json

如何从leaveInfo中获取第三个leaveTypeId和年份?

{  
"statusCode":"1001",
"message":"Success",
"response":{  
  "leaveInfo":[  
     {  

        "leaveTypeId":1,
        "year":2014

     },
     {  

        "leaveTypeId":2,
        "year":2014

     },
     {  
        "leaveTypeId":3,
        "year":2014,

     },
     {  
        "leaveTypeId":4,
        "year":2014
     },
     {  
        "leaveTypeId":5,
        "year":2014
     },
     {  
        "leaveTypeId":6,
        "year":2014
     }
  ]
}
}

我这样做是为了满足我的需求

JSONObject jobj1 = new JSONObject(result);
String statusCode = jobj1.getString("statusCode");
if (statusCode.equalsIgnoreCase("1001"))
{
    String response = jobj1.getString("response");
    JSONObject jobj2 = new JSONObject(response);
    String leaveInfo = jobj2.getString("leaveInfo");
    System.out.println("leaveInfo: "+leaveInfo);
}

我不知道如何进一步,因为leaveInfo 中的数组没有键值。请在这方面帮助我。

最佳答案

使用这个

JSONObject jobj1 = new JSONObject(result);
String statusCode = jobj1.getString("statusCode");
if (statusCode.equalsIgnoreCase("1001"))
{
 String response = jobj1.getString("response");
 JSONObject jobj2 = new JSONObject(response);
 JSONArray ary=jobj2.getJSONArray("leaveInfo");
 for(int i=0;i<ary.length;i++){
 JSONObject obj=ary.getJSONObject(i);
 String leaveInfo=obj.getString("leaveTypeId");
 System.out.println("leaveInfo: "+leaveInfo);
 } 

 }

希望这对你有帮助:)

关于java - Java中如何解析这种类型的JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539706/

相关文章:

java - 在服务器上运行时未填充 index.jsp

java - Add 方法将对象添加到数组中

java - 使用 Jackson 检查 JSON 在 JAVA 中是否有效

java - Json 数据无法正确从 URL 读取

java - 在 Intellij 中,可以从一个选项卡组切换到另一个选项卡组的键盘快捷键的名称是什么?

Java 错误未报告的异常 IOException;必须被捕获或宣布被抛出

java - Json KEY不断变化时Spring对Java对象的响应

json - 重新定义引用的 JSON 架构所需的属性

python - 解析requests.post对象

javascript - Kotlin 允许扩展现有类型是好事吗?