我有一个应用程序已将一些数据存储在JSON对象中。示例如下,
有人可以告诉我,我们可以在JAVA上做同样的事情吗?有没有办法在java上存储这样的数据? Java对象?
我对此很新。
您能告诉我转换上述JSON对象的步骤以及它在java中的外观吗?请?
答案 0 :(得分:1)
是的,您可以使用GSON lib。
GSON依赖包含在gradle中
compile 'com.google.code.gson:gson:2.8.0'
然后在代码中。 POJO 强>
public class Animal {
public String parentName;
}
public class Cat extends Animal{
public String subNameC;
}
public class Dog extends Animal{
public String subNameD;
}
然后假设你有这样的json字符串
String data=" [
{'subNameC':'I am cat','parentName':'I am animal C'},
{'subNameD":'I am dog','parentName':'I am animal D'}
]";
然后创建GSON的对象
Gson gson = new Gson();
最后,我们使用fromJson()从JSON映射到Java对象:
TypeToken<List<Animal>> token = new TypeToken<List<Animal>>() {};
List<Animal> animals = gson.fromJson(data, token.getType());
完成强>
你的json对象的Pojo如下
-----------------------------------com.example.Places.java-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Places {
@SerializedName("1")
@Expose
private com.example._1 _1;
@SerializedName("2")
@Expose
private com.example._2 _2;
public com.example._1 get1() {
return _1;
}
public void set1(com.example._1 _1) {
this._1 = _1;
}
public com.example._2 get2() {
return _2;
}
public void set2(com.example._2 _2) {
this._2 = _2;
}
}
-----------------------------------com.example._1.java-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class _1 {
@SerializedName("name")
@Expose
private String name;
@SerializedName("lat")
@Expose
private double lat;
@SerializedName("lon")
@Expose
private double lon;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLon() {
return lon;
}
public void setLon(double lon) {
this.lon = lon;
}
}
-----------------------------------com.example._2.java-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class _2 {
@SerializedName("name")
@Expose
private String name;
@SerializedName("lat")
@Expose
private double lat;
@SerializedName("lon")
@Expose
private double lon;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLon() {
return lon;
}
public void setLon(double lon) {
this.lon = lon;
}
}
您的JSON字符串
String data="{
'places': {
'1': {'name': 'Pettah','lat': 6.93321,'lon': 79.8554},
'2': {'name': 'Fort Railway Station','lat': 6.93408,'lon': 79.8502}
}
}";
Gson gson = new Gson();
TypeToken<List<Places>> token = new TypeToken<List<Places>>() {};
List<Places> animals = gson.fromJson(data, token.getType());