初学者求教GSON解析,不创建javabean

{
"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

9个回答

转成Map试试,应该可以的

不创建JavaBean的话可以将获取到结果值转换为Map对象,通过Map对象的get()方法获取对应key参数的结果。
希望对你有帮助!

使用GsonFormat插件直接装换成Bean类

看下我的这个博客
http://blog.csdn.net/jdfkldjlkjdl/article/details/52234204
可以解决你的疑问

    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);
}
这个就解析出来了

使用正则匹配出来就可以了,例如,如果data字段只是number类型的话: /“data”:([\d-.+]⁺)/g
这是js格式正则,如果是java或其他语言的话,稍微修改就好,然后针对匹配到的内容,通过group(1)就可以过去到值了。如果值有多个也可以多次匹配来获取

data里边有四个相同的Object对象,所以可以转换成数组,比如返回数组的变量名为array,比如要获取第一个对象的sensorName值,就可以这样写:
array[0].sensorName

给你介绍个工具 json转javaBean

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐