有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在使用groovy访问JSON字段时遇到问题

我试图使用groovy从API响应中提取信息

我想获取存储在“res”键下的信息

沿着身体线条的东西。措施。02:00:00:02:06:70.res

无法确定必须在不引发nullpointerexception的情况下访问此信息

"body":[  {
     "_id":"70:ee:50:01:fe:96",
     "place":{
        "location":[
           -70.863189,
           42.273936
        ],
        "altitude":26.154942,
        "timezone":"America\/New_York"
     },
     "mark":12,
     "measures":{
        "02:00:00:02:06:70":{
           "res":{
              "1506611038":[
                 22,
                 66
              ]
           },
           "type":[
              "temperature",
              "humidity"
           ]
        },
        "06:00:00:01:97:28":{
           "wind_strength":15,
           "wind_angle":343,
           "gust_strength":29,
           "gust_angle":301,
           "wind_timeutc":1506611083
        },
        "70:ee:50:01:fe:96":{
           "res":{
              "1506611086":[
                 1007.4
              ]
           },
           "type":[
              "pressure"
           ]
        }
     },
     "modules":[
        "02:00:00:02:06:70",
        "06:00:00:01:97:28"
     ],
     "module_types":{
        "02:00:00:02:06:70":"NAModule1",
        "06:00:00:01:97:28":"NAModule2"
     }
  }






 ],
"status":"ok",
"time_exec":0.017483949661255,
"time_server":1506611446
 }

共 (1) 个答案

  1. # 1 楼答案

    body是一个数组,在你的例子中只有一个元素,所以你必须执行body[0].measures.'02:00:00:02:06:70'.res,例如

    new groovy.json.JsonSlurper().parseText('''{"body":[  {
         "_id":"70:ee:50:01:fe:96",
         "place":{
            "location":[
               -70.863189,
               42.273936
            ],
            "altitude":26.154942,
            "timezone":"America/New_York"
         },
         "mark":12,
         "measures":{
            "02:00:00:02:06:70":{
               "res":{
                  "1506611038":[
                     22,
                     66
                  ]
               },
               "type":[
                  "temperature",
                  "humidity"
               ]
            },
            "06:00:00:01:97:28":{
               "wind_strength":15,
               "wind_angle":343,
               "gust_strength":29,
               "gust_angle":301,
               "wind_timeutc":1506611083
            },
            "70:ee:50:01:fe:96":{
               "res":{
                  "1506611086":[
                     1007.4
                  ]
               },
               "type":[
                  "pressure"
               ]
            }
         },
         "modules":[
            "02:00:00:02:06:70",
            "06:00:00:01:97:28"
         ],
         "module_types":{
            "02:00:00:02:06:70":"NAModule1",
            "06:00:00:01:97:28":"NAModule2"
         }
      }
    
    
    
    
    
    
     ],
    "status":"ok",
    "time_exec":0.017483949661255,
    "time_server":1506611446
     }}''').body[0].measures.'02:00:00:02:06:70'.res