使用 Gson 将 json 反序列化到另一个 Java 对象
Deserialize json filed to a different Java Object with Gson
我正在我的应用程序中使用 Google 个地点。当我请求附近的地点时,我会得到一个地点列表。每个地方都有这个 Json 结构:
{
"geometry" : {
"location" : {
"lat" : -33.870775,
"lng" : 151.199025
}
},
...
}
我的 Java Place
class 是这样声明的:
public class Place {
private double latitude;
private double longitude;
...
}
如何将 lat
json 字段分配给 latitude
成员并将 lng
字段分配给 longitude
?是否可以使用 Gson
或者我是否也应该创建一个几何体 class 和一个位置 class?
我尝试使用这些序列化名称,但它不起作用:
@SerializedName("geometry.location.lat") private double latitude;
@SerializedName("geometry.location.lng") private double longitude;
我看到的第一个解决方案是实现自定义 JsonDeserializer。此外,将用于与外部服务和域对象进行通信的 classes 分开也是值得的。然后你将有一些 class GooglePlace,你的域 class Place 以及一个适配器(转换器)来转换 GooglePlace放置和倒退。在这种情况下,您的实施将更加灵活。
我正在我的应用程序中使用 Google 个地点。当我请求附近的地点时,我会得到一个地点列表。每个地方都有这个 Json 结构:
{
"geometry" : {
"location" : {
"lat" : -33.870775,
"lng" : 151.199025
}
},
...
}
我的 Java Place
class 是这样声明的:
public class Place {
private double latitude;
private double longitude;
...
}
如何将 lat
json 字段分配给 latitude
成员并将 lng
字段分配给 longitude
?是否可以使用 Gson
或者我是否也应该创建一个几何体 class 和一个位置 class?
我尝试使用这些序列化名称,但它不起作用:
@SerializedName("geometry.location.lat") private double latitude;
@SerializedName("geometry.location.lng") private double longitude;
我看到的第一个解决方案是实现自定义 JsonDeserializer。此外,将用于与外部服务和域对象进行通信的 classes 分开也是值得的。然后你将有一些 class GooglePlace,你的域 class Place 以及一个适配器(转换器)来转换 GooglePlace放置和倒退。在这种情况下,您的实施将更加灵活。