通过使用JAVA提供特定的id - JSON文件来获取特定值

时间:2016-12-02 13:29:19

标签: java json

我想阅读并打印特定id的值。例如,我想阅读并打印name的{​​{1}}和status以及sensor。 如何使用id = 1JAVA文件执行此操作?有人能帮助我吗?

JSON

阅读{ "Sensor": [ { "id": 1, "name": "RR", "status": 1, }, { "id": 2, "name": "RS", "status": 1, }, { "id": 3, "name": "GR", "status": 0, }, ], } 文件的JAVA代码:

JSON

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

您的sensorJSONArray而不是JSONObject所以

1。)获取数组

2。)使用索引遍历数组并从数组中获取对象

3.。)从对象中获取值

   JSONObject jsonObject = (JSONObject) new JSONParser().parse(reader);

   // fetch sensor array
   JSONArray sensors = jsonObject.getJSONArray("Sensor");
   JSONObject temp;
   //take the elements of the json array
   int  id ;
   String name,status;

   for (int i=0; i<sensors.size(); i++){
       // fetch array using index
       temp = sensors.getJSONObject(i); 

       // fetch your data
       id = temp.optInt("id");

       if( id==1){
           name   = temp.optString("name");
           status = temp.optString("status");
           System.out.println( name +" "+status);
       }
   }

答案 1 :(得分:1)

 公共类JSON {&#xA;&#xA; / **&#xA; * @param args命令行参数&#xA; * /&#xA;&#xA;私有静态字符串jsonFile =“/ Users / foteini / Desktop / JSON / sensor copy.json”; &#xA;&#xA; public static void main(String [] args)抛出FileNotFoundException,IOException,ParseException {&#xA;&#xA; FileReader reader = new FileReader(jsonFile);&#xA;&#xA; JSONObject jsonObject =(JSONObject)new JSONParser()。parse(reader);&#xA;&#xA; JSONArray传感器=(JSONArray)jsonObject.get(“传感器”);&#xA; //获取json数组的元素&#xA; int id_num = 0;&#xA; for(int i = 0; i&lt; sensors.size(); i ++){&#xA; JSONObject item = sensors.get(i);&#xA; if(item.getInt(“id”)== 1){&#xA; //处理项目&#xA;的System.out.println(item.getString( “状态”));&#XA; }&#XA;&#XA; }&#XA; }&#xA;}&#xA;  
&#xA;&#xA;

你必须在循环中指定条件:

&#xA;