Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java googleplacesapi的GSON解析_Java_Json_Parsing_Gson - Fatal编程技术网

Java googleplacesapi的GSON解析

Java googleplacesapi的GSON解析,java,json,parsing,gson,Java,Json,Parsing,Gson,我需要一些帮助来创建将由GSON解析器填充的类。 这是输出od自动完成Google Places API: { "predictions" : [ { "reference" : "CjQtAA", "terms" : [ { "offset" : 0, "value" : "Ladimirevci" }, { "offset" : 13,

我需要一些帮助来创建将由GSON解析器填充的类。 这是输出od自动完成Google Places API:

{
   "predictions" : [
  {
     "reference" : "CjQtAA",
     "terms" : [
        {
           "offset" : 0,
           "value" : "Ladimirevci"
        },
        {
           "offset" : 13,
           "value" : "Hrvatska"
        }
     ],
     "types" : [ "locality", "political", "geocode" ]
  },
  {
     "reference" : "CjQtAAA",
     "terms" : [
        {
           "offset" : 0,
           "value" : "Ladimirevci"
        },
        {
           "offset" : 13,
           "value" : "Hrvatska"
        }
     ],
     "types" : [ "locality", "political", "geocode" ]
  }
],
  "status" : "OK"
}
解决方案感谢MikO

课程包括:

public class GPlacesAPIResults {

    @SerializedName("predictions")
    public List<GPlacesAPILocation> predictions;

    @SerializedName("status")
    public String status;

}
在应用程序中,我这样称呼它

InputStreamReader in = new InputStreamReader(conn.getInputStream()); //results from places api

GPlacesAPIResults lcs = new Gson().fromJson( in , GPlacesAPIResults.class);

感谢您的努力:-)

您的
结果
类带有属性
位置
没有任何意义。。。事实上,我不明白你为什么会想到这个,因为在你的JSON中没有
位置
元素

试着这样做(遵循您的特定符号):

结果
列出预测;
字符串状态;
位置
字符串引用;
列出术语;
地址
字符串值;

问题在于只有一个预测标签和多个参考/术语对。如果没有和对,gson会崩溃吗?@reebuuk:
predictions
是一个JSON数组(被
[]
包围),因此您必须在
列表中解析它。。。数组中的元素数不重要,可能有1个对象,9999或0,在任何情况下,
列表预测
将用这些元素填充。。。然后,这些对象中的每一个(您称之为
位置
)依次有1个
引用
元素和1个
术语
元素。。。后者又是一个数组。。。这个模型应该可以工作了!你是对的。我在ma地址类中有列表值。:-)
public class GPlacesAPIAddress implements Serializable {

    private static final long serialVersionUID = -6916297127791361853L;

    @SerializedName("value")
    public String value;

    }
InputStreamReader in = new InputStreamReader(conn.getInputStream()); //results from places api

GPlacesAPIResults lcs = new Gson().fromJson( in , GPlacesAPIResults.class);
Results
List<Locations> predictions;
String status;

Locations
String reference;
List <Addresses> terms;

Addresses
String value;