{
"response": {
"players": [
{
"steamid": "---",
"communityvisibilitystate": 1,
"profilestate": 1,
"personaname": "---",
"lastlogoff": 1429915502,
"profileurl": "---",
"avatar": "---",
"avatarmedium": "---",
"avatarfull": "---",
"personastate": 0
}
]
}
}
我使用的是名为Gson的Google JSON API,在设置Java类以便使用fromjson()
方法时遇到了困难。
从JSON数据中,我知道有一个包含所有数据的players
对象数组。让我感到困惑的是外部标记response
。我知道我必须构造一个表示players
对象的类,但是我是否也必须创建一个表示response
的类,因为它包含players
?
目前,我有一个名为response.java
的文件,其中包含以下内容:
public class Response {
private ArrayList<Player> playerSummaries = new ArrayList<Player>();
public String toString() {
return playerSummaries.get(0).toString();
}
}
class Player {
private String steamid;
private String personaname;
public String getSteamID() {
return steamid;
}
public void setSteamID(String newSteamID) {
steamid = newSteamID;
}
public String getPersonaName() {
return personaname;
}
public void setPersonaName(String name) {
personaname = name;
}
//Rest of getters and setters omitted.
@Override
public String toString() {
return "<<" + "steamid=" + steamid + "\n" + "name=" + personaname + "\n" + ">>";
}
}
我只包括了我计划使用的变量。上面的JSON数据包含在一个名为JSONData
的字符串中,这就是我在main方法中测试的内容:
Response response = gson.fromJson(jsonData, Response.class);
System.out.println(response.getPlayerAt(0));
替换
private ArrayList<Player> playerSummaries = new ArrayList<Player>();
与
private ArrayList<Player> players = new ArrayList<Player>();
GSON使用反射来查找它应该填充哪个字段。在您的示例中,它正在查找是否有一个名为players
的字段,而您没有这个字段。
您也不需要实例化字段,GSON将为您这样做。
class MyObject {
public Response response;
}
MyObject myObject = gson.fromJson(jsonData, MyObject.class);
这里是我被困的地方,我在哪里创建我的新Gson()来在发送数据之前解析它?
问题内容: 假设我有json字串 现在我有一个班级用户 现在如何将上述json字符串转换为用户类对象 问题答案: 试试这个:
本文向大家介绍如何使用GSON库将Java对象转换为JSON?,包括了如何使用GSON库将Java对象转换为JSON?的使用技巧和注意事项,需要的朋友参考一下 JSON或JavaScript Object Notation是一种轻量级的基于文本的开放标准,旨在用于人类可读的数据交换。JSON使用的约定是程序员已知的,包括C,C ++,Java,Python,Perl等。 有几种Java库可用于处理
问题内容: 是否有可能使用Gson或JAVA上的任何其他库将匿名对象类型序列化为JSON? 在此示例中,字符串jsonstr返回空值。 问题答案: Gson不支持该功能。从用户指南 与内部类,匿名类和本地类中的外部类相对应的字段将被忽略,并且不包含在序列化或反序列化中 您可以使用一个(或其他)表示匿名类型的超类来描述要使用重载方法进行序列化的内容,但是您仍然会丢失匿名子类中定义的任何新字段。(显然
问题内容: 我有一个列表,我需要使用GSON将其转换为JSON对象。我的JSON对象中包含JSON数组。 以下是我的代码,其中我需要将列表转换为其中具有JSON数组的JSON对象- 到目前为止,列表中只有两项-所以我需要这样的JSON对象- 做这个的最好方式是什么? 问题答案: 如果在您的方法中为,则应进行序列化。 这将为您提供所需的JSON输出。
问题内容: 我正在从返回JSON格式数据的服务器请求数据。发出请求时,将HashMap转换为JSON并不困难,但另一种方式似乎有些棘手。JSON响应如下所示: 哪种方法最容易访问此数据?我正在使用GSON模块。 问题答案: