使用GSON从嵌套的JSON中检索值

时间:2015-11-25 18:14:56

标签: java json api gson google-distancematrix-api

我第一次使用JSON,我的目标是使用此JSON结果(Google Distance Matrix API)创建一个具有Destination,Origin和Duration属性的对象

{
   "destination_addresses" : [ "123 High St, Los Angeles, CA 90210, USA" ],
   "origin_addresses" : [ "800 Lake Dr, Los Angeles, CA 90210, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "2.0 km",
                  "value" : 1969
               },
               "duration" : {
                  "text" : "6 mins",
                  "value" : 338
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

到目前为止,我已经能够使用此行正确存储目的地和原点 Property data = new Gson().fromJson(json, Property.class); 但我很难弄清楚如何从巢内获取值。具体来说,我试图从持续时间中获取“文本” 任何帮助都会得到极大的帮助!

1 个答案:

答案 0 :(得分:0)

首先为周围数据创建一个容器。

class MainContent
{
  public String destination_addresses;
  public String bar;
  public List<SubContent> subcontent;
}

然后为嵌套数据创建一个类:

class SubContent
{
    public String text; 
}

任一类中的字段必须与json对象具有相同的名称。

然后简单地说:

gson.fromJson(jsonData, MainContent.class);

GSON将尝试将json字符串中的值反映到对象中。