我想阅读并打印特定id
的值。例如,我想阅读并打印name
的{{1}}和status
以及sensor
。
如何使用id = 1
和JAVA
文件执行此操作?有人能帮助我吗?
JSON
阅读{
"Sensor": [
{
"id": 1,
"name": "RR",
"status": 1,
},
{
"id": 2,
"name": "RS",
"status": 1,
},
{
"id": 3,
"name": "GR",
"status": 0,
},
],
}
文件的JAVA代码:
JSON
非常感谢你的帮助!
答案 0 :(得分:2)
您的sensor
是JSONArray
而不是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;