有条件地使用java获取json数据

时间:2016-11-21 07:37:03

标签: java json

下面是我的代码,我试图检查id id = 101并获得与id = 101相关的名称= Pushkar。但是代码没有按预期工作。

import org.json.simple.JSONArray;
import org.json.JSONException;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class A6 {
public static void main(String[] args) throws ParseException, JSONException{

    String out1="{\"Employee\":[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

//System.out.println(out1);
JSONParser parser=new JSONParser();
JSONObject obj=(JSONObject)parser.parse(out1);
//System.out.print(obj);
JSONArray jarr=(JSONArray)obj.get("Employee");
//System.out.print(jarr);
for (int i=0;i<jarr.size();i++)
{ 


    JSONObject jobj=(JSONObject)jarr.get(i);
    String ID1=(String)jobj.get("id");
    System.out.println(ID1);
    if(ID1!=null && out1.equals(ID1))
    {
    System.out.println("NAME"+jobj.get("name"));
    }



}
}}

2 个答案:

答案 0 :(得分:1)

尝试改变如下条件:

if(ID1!=null && out1.contains(ID1))
    {
    System.out.println("NAME"+jobj.get("name"));
    }

感谢。

答案 1 :(得分:1)

为什么要将out1与ID1进行比较?你想要检查out1是否包含ID1(当你从out1中检索ID1时,这不是很有意义),或者你想验证ID1是否等于101.在这种情况下,你宁愿想要说出类似的内容:

if(ID1!=null && "101".equals(ID1))
    {
    System.out.println("NAME"+jobj.get("name"));
    }