bingyizhilang
2017-12-08 05:29
采纳率: 100%
浏览 1.7k
已采纳

初学者求教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条回答 默认 最新

  • 小李卫 2017-12-08 10:14
    已采纳
        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);
    }
    这个就解析出来了
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Lin_88zq 2017-12-08 05:59

    转成Map试试,应该可以的

    评论
    解决 无用
    打赏 举报
  • 开发小菜鸟 2017-12-08 06:17

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

    评论
    解决 无用
    打赏 举报
  • AndroidDev2020 2017-12-08 06:53

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

    评论
    解决 无用
    打赏 举报
  • 小李卫 2017-12-08 10:00
    评论
    解决 无用
    打赏 举报
  • 键盘舞者113 2017-12-09 02:49

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

    评论
    解决 无用
    打赏 举报
  • mnlin 2017-12-15 17:24

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

    评论
    解决 无用
    打赏 举报
  • 奥利弗嗷 2017-12-21 14:36

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

    评论
    解决 无用
    打赏 举报
  • UIbox 2018-11-14 01:17

    给你介绍个工具 json转javaBean

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题