{
"status": 0,
"message": "",
"data": [
{
"sensorName": "airTemp",
"dataUnit": "℃",
"data": 20
},
{
"sensorName": "soilHum",
"dataUnit": "%",
"data": 73
},
{
"sensorName": "co2",
"dataUnit": "ppm",
"data": 679
},
{
"sensorName": "light",
"dataUnit": "lux",
"data": 38.7
}
]
}
不创建javabean并且要可以单独获取其中一个key的值,比如获取data中的sensorName
JsonParser parser=new JsonParser();
JsonObject object= (JsonObject) parser.parse(new FileReader(".\\li.json"));
JsonArray asJsonArray = object.get("data").getAsJsonArray();
for(int i=0;i<asJsonArray.size();i++){
JsonObject object2 = asJsonArray.get(i).getAsJsonObject();
String string = object2.get("sensorName").getAsString();
System.out.println(string);
}
这个就解析出来了
转成Map试试,应该可以的
不创建JavaBean的话可以将获取到结果值转换为Map对象,通过Map对象的get()方法获取对应key参数的结果。
希望对你有帮助!
看下我的这个博客
http://blog.csdn.net/jdfkldjlkjdl/article/details/52234204
可以解决你的疑问
这个直接用GSON转换成jsonObject或者JsonArray
http://blog.csdn.net/u011478445/article/details/78753844这是我写的一个方法不管是多么复杂的json都能解析
使用GsonFormat插件直接装换成Bean类
使用正则匹配出来就可以了,例如,如果data字段只是number类型的话: /“data”:([\d-.+]⁺)/g
这是js格式正则,如果是java或其他语言的话,稍微修改就好,然后针对匹配到的内容,通过group(1)就可以过去到值了。如果值有多个也可以多次匹配来获取
data里边有四个相同的Object对象,所以可以转换成数组,比如返回数组的变量名为array,比如要获取第一个对象的sensorName值,就可以这样写:
array[0].sensorName
给你介绍个工具 json转javaBean