我正在尝试使用gson从JSON对象反序列化数据。我有麻烦1)设计一个类。2)从内部列表对象获得一个空对象。
以下是JSON对象的示例
{
"spatialReference" : {
"wkid" : 102113
},
"candidates" : [
{
"address" : "202 S Van Ness Ave, San Francisco, CA, 94110",
"location" : {
"x" : -13627444.2697,
"y" : 4546249.2471000031
},
"score" : 85.969999999999999,
"attributes" : {
"Loc_name" : "US_RoofTop",
"Score" : 85.969999999999999,
"Match_addr" : "505 S Van Ness Ave, San Francisco, CA, 94110",
"House" : "505",
"Side" : "R",
"PreDir" : "S",
"PreType" : "",
"StreetName" : "Van Ness",
"SufType" : "Ave",
"SufDir" : "",
"City" : "San Francisco",
"State" : "CA",
"ZIP" : "94110",
"X" : -122.417416,
"Y" : 37.764772999999998,
"Disp_Lon" : -122.416991,
"Disp_Lat" : 37.764809999999997,
"Addr_type" : "StreetAddress",
"Province" : "",
"Postal" : "",
"FromAddr" : "",
"ToAddr" : "",
"ZIP4" : "",
"ZIP4_TYPE" : "",
"User_fld" : "",
"Ldu" : "",
"xmin" : 0,
"xmax" : 0,
"ymin" : 0,
"ymax" : 0
}
},
{
"address" : "505 Van Ness Ave, San Francisco, CA, 94102",
"location" : {
"x" : -13627778.172800001,
"y" : 4548412.0926000029
},
"score" : 100,
"attributes" : {
"Loc_name" : "US_Streets",
"Score" : 100,
"Match_addr" : "505 Van Ness Ave, San Francisco, CA, 94102",
"House" : "",
"Side" : "L",
"PreDir" : "",
"PreType" : "",
"StreetName" : "Van Ness",
"SufType" : "Ave",
"SufDir" : "",
"City" : "San Francisco",
"State" : "CA",
"ZIP" : "94102",
"X" : -122.42041500000001,
"Y" : 37.780130999999997,
"Disp_Lon" : 0,
"Disp_Lat" : 0,
"Addr_type" : "StreetAddress",
"Province" : "",
"Postal" : "",
"FromAddr" : "501",
"ToAddr" : "525",
"ZIP4" : "",
"ZIP4_TYPE" : "",
"User_fld" : "",
"Ldu" : "",
"xmin" : 0,
"xmax" : 0,
"ymin" : 0,
"ymax" : 0
}
}]
下面是我为json对象创建的类的一个示例,该类将与使用java的gson一起使用
public class Response {
public Response()
{}
SpatialReference spatial;
public List<Candidates> candidate;
public class Candidates
{
public Candidates()
{}
@SerializedName("address")
public String address;
Location location;
@SerializedName("score")
public double score;
Attribute attributes;
Double getScore()
{
return score;
}
}
public class Attribute {
public Attribute()
{}
@SerializedName("Disp_Lon")
public double dispLong;
@SerializedName("Disp_Lat")
public double dispLat;
}
public class Location {
public Location()
{}
@SerializedName("x")
public double x;
@SerializedName("y")
public double y;
}
public class SpatialReference {
SpatialReference()
{}
@SerializedName("wkid")
public String wkid;
}
}
下面是使用gson的示例代码
Gson gson= new Gson()
response1= gson.fromJson(reader, Response.class);
return response1;
任何帮助都将不胜感激,我对GSON和检索JSON对象非常陌生。非常感谢你
我会去掉内部类定义,除非有非常令人信服的理由。如果名称空间是目标,那么至少让它们成为静态嵌套类定义。这也将使它们更容易反序列化为。
我在http://programmerbruce.blogspot.com/2011/06/gson-v-jackson.html#TOC-Nested-Classes-including-Inner-Clas上发布了反序列化到静态嵌套类和内部类的示例
我从超文本传输协议Web服务收到以下JSON响应 现在我希望能够反序列化这个。我偶然发现了来自谷歌的Gson,它最初在一些小测试用例中运行良好,但我在反序列化上面的字符串时遇到了一些困难。 我正在阅读Gson用户指南,理想情况下,我希望有一个对象,它有两个属性:和,但是字段必须是对象的,这可能会让Gson感到困难。 然后我看了这个例子,它更接近我的问题,但我仍然不太明白。在这个例子中,整个响应是一
我想使用Gson将JSON反序列化为对象。我已经定义了相应的类,其中一些类的对象包含在其他对象中。在尝试反序列化整个JSON时,我得到了空值,所以我开始将其拆分。 我已经到了所有低级类都支持自己的地步,但是当我试图反序列化成一个包含那个较小对象的实例的对象时,所有的东西都返回为null。 我的部分JSON: UserProfile类: UPfield类: 用户类: Ufield类: 我的主要观点是
问题内容: 由于要执行处理的业务逻辑,因此我正在实现自定义。但是某些部分可以解析为标准方式。这是否可能- 我自己处理一些元素,并让一些嵌套元素自动处理? 这是JSON: 这是项的自定义反序列化器: 现在,我想让GSON解析枚举。我可以自己完成,这只是几行代码,但是我更愿意库做很多。 问题答案: …但是我希望图书馆尽其所能。 好吧,只需使用Gson。 有数据传输对象模式,尤其是Gson映射类,可以完
主要内容:嵌套内部类示例,嵌套的静态内部类示例在本章中,我们将解释具有内部类的类的序列化/反序列化。 嵌套内部类示例 参考以下示例代码片段 - 示例 让我们来看看一个内部类的序列化/反序列化。 创建一个名为的Java类文件:GsonTester.java - 执行上面示例代码,得到以下结果 - 嵌套的静态内部类示例 参考以下代码实现 - 示例 我们来看一个实例,其中包含一个静态内部类的序列化/反序列化。 创建一个名为的Java类文件:Gson
我的后端使用Springboot和Gson。我有这两个类的多对多关系: 订单类 产品类别 这是我用来向restendpoint提供数据的服务 以下是回应: 我的目标是反序列化/转义String属性。 我尝试过创建一个类并使用注释,但据我所知,当您需要为反序列化提供自定义行为时使用此注释,我示例中的JSON字符串非常简单,我不需要任何特定的逻辑。
问题内容: 我使用了很多不可变的集合,并且很好奇如何使用Gson反序列化它们。由于没有人回答,而且我自己找到了解决方案,因此我正在简化问题并提出自己的答案。 我有两个问题: 如何为所有人编写一个作品? 如何全部注册? 问题答案: 更新:有https://github.com/acebaggins/gson- serializers ,其中涵盖了许多番石榴集合: 如何编写适用于所有Immutable