Gson-Json列表到Java列表<;对象>;
我在将Json对象列表转换为Java列表时遇到了一些问题。我用的是GSon。 我有以下Json列表:Gson-Json列表到Java列表<;对象>;,java,json,gson,Java,Json,Gson,我在将Json对象列表转换为Java列表时遇到了一些问题。我用的是GSon。 我有以下Json列表: {"player": [ {"id":"1","age":"25","name":"Neuer"}, {"id":"2","age":"26","name":"Cristiano Ronaldo"}, {"id":"3","age":"24","name":"Lionel Messi"} ] } public class PlayerDTO implem
{"player":
[
{"id":"1","age":"25","name":"Neuer"},
{"id":"2","age":"26","name":"Cristiano Ronaldo"},
{"id":"3","age":"24","name":"Lionel Messi"}
]
}
public class PlayerDTO implements Serializable {
private int id;
private String name;
private int age;
//Getters and Setters
}
Type collectionType = new TypeToken<ArrayList<PlayerDTO>>(){}.getType();
List<PlayerDTO> players = gson.fromJson(jsonString, collectionType);
我有以下Java对象:
{"player":
[
{"id":"1","age":"25","name":"Neuer"},
{"id":"2","age":"26","name":"Cristiano Ronaldo"},
{"id":"3","age":"24","name":"Lionel Messi"}
]
}
public class PlayerDTO implements Serializable {
private int id;
private String name;
private int age;
//Getters and Setters
}
Type collectionType = new TypeToken<ArrayList<PlayerDTO>>(){}.getType();
List<PlayerDTO> players = gson.fromJson(jsonString, collectionType);
在我的Java类中,我正在做:
{"player":
[
{"id":"1","age":"25","name":"Neuer"},
{"id":"2","age":"26","name":"Cristiano Ronaldo"},
{"id":"3","age":"24","name":"Lionel Messi"}
]
}
public class PlayerDTO implements Serializable {
private int id;
private String name;
private int age;
//Getters and Setters
}
Type collectionType = new TypeToken<ArrayList<PlayerDTO>>(){}.getType();
List<PlayerDTO> players = gson.fromJson(jsonString, collectionType);
我理解这是因为Gson希望Json字符串的开头没有“player”。你能帮助我吗?谢谢 解决此问题的最简单方法是创建一个Players类作为玩家的集合 以下是
玩家
课程:
import java.util.ArrayList;
import java.util.List;
import com.google.gson.annotations.Expose;
public class Players {
@Expose
private List<Player> players = new ArrayList<Player>();
public List<Player> getPlayer() {
return player;
}
public void setPlayer(List<Player> player) {
this.player = player;
}
}
import com.google.gson.annotations.Expose;
public class Player {
@Expose
private String id;
@Expose
private String age;
@Expose
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我的建议是创建一个
PlayerCollection
(?)类型,其中包含一个适当的players list属性。无论如何,请参见-但是这些方法似乎很粗糙,似乎gson现在可以使用它来避免额外的解析。因此,您试图跳过初始的“player”对象,只获取列表?不,我想知道我是否做错了什么,因为我相信Gson能够在Java列表中转换这个Json字符串。我相信这不是最好的解决方案。希望其他人能给我另一个解决方案。