Java 如何解析这些json字符串?(使用gson)
我有一个json字符串,如下所示: 我正在尝试使用gson来解析它们。不过,我有一个问题。在新的响应中,user元素包含泛型id作为键,由于它位于内部类中,我不确定如何解析它 谢谢你的帮助 下面是我为存储这些数据而构建的几个类容器:Java 如何解析这些json字符串?(使用gson),java,json,gson,Java,Json,Gson,我有一个json字符串,如下所示: 我正在尝试使用gson来解析它们。不过,我有一个问题。在新的响应中,user元素包含泛型id作为键,由于它位于内部类中,我不确定如何解析它 谢谢你的帮助 下面是我为存储这些数据而构建的几个类容器: public class CometCallback { public int new_offset; public Data[] data; } public class Data { public long plurk_id;
public class CometCallback
{
public int new_offset;
public Data[] data;
}
public class Data
{
public long plurk_id;
public int response_count;
public Response response;
public UserInfo user;
public String type;
public Plurk plurk;
}
public class Response
{
public String lang;
public String content_raw;
public long user_id;
public String qualifier;
public long plurk_id;
public String content;
public long id;
public String posted;
}
public class Plurk extends Response
{
public Object[] replurkers;
public int responses_seen;
public int replurkers_count;
public String replurker_id;
public int response_count;
public boolean replurkable;
public Object limited_to;
public int favorite_count;
public int is_unread;
public Object[] favorers;
public int plurk_type;
public boolean replurked;
public boolean favorite;
public int no_comments;
public long owner_id;
}
关于你的帖子,我有几点要分享:
GsonBuilder
的选项。然后需要声明UsewrInfo
仅包含一个元素Map
,并声明User
bean,其中所有属性都映射到id
@SerializedName(“new_offer”)
位于字段声明上方
Gson gson = new GsonBuilder()
.enableComplexMapKeySerialization()
.serializeNulls()
.setDateFormat(MY_DATE_FORMAT)
.create();
CometCallback cometCallback = gson.fromJson(jsonFile, CometCallback.class) ;
我将在下一节讨论DateFormat
选项。
serializeNulls
是必需的,因为我看到了带有null的属性
值也被序列化,如“出生日期”:null
DateFormat
-我看到你发布了声明公共字符串代码>
作为字符串。然而,gson可以直接从json解析日期
字符串,只要指定日期的确切格式
我会在的。这是我认为你定义日期的确切格式
在:
现在宣布这一点,并在
setDateFormat(我的日期格式)
您应该能够更改的方法
您的所有日期都将被读取为日期,gson将为您解析这些日期
希望所有这些都能帮助您反序列化数据。快乐编码 关于你的帖子,我有几点要分享:
GsonBuilder
的选项。然后需要声明UsewrInfo
仅包含一个元素Map
,并声明User
bean,其中所有属性都映射到id
@SerializedName(“new_offer”)
位于字段声明上方
Gson gson = new GsonBuilder()
.enableComplexMapKeySerialization()
.serializeNulls()
.setDateFormat(MY_DATE_FORMAT)
.create();
CometCallback cometCallback = gson.fromJson(jsonFile, CometCallback.class) ;
我将在下一节讨论DateFormat
选项。
serializeNulls
是必需的,因为我看到了带有null的属性
值也被序列化,如“出生日期”:null
DateFormat
-我看到你发布了声明公共字符串代码>
作为字符串。然而,gson可以直接从json解析日期
字符串,只要指定日期的确切格式
我会在的。这是我认为你定义日期的确切格式
在:
现在宣布这一点,并在
setDateFormat(我的日期格式)
您应该能够更改的方法
您的所有日期都将被读取为日期,gson将为您解析这些日期
希望所有这些都能帮助您反序列化数据。快乐编码 谢谢你的建议,我现在有几件事要尝试:)谢谢你的信息。我现在似乎能够提取出我想要的价值!我需要做更多的测试来了解“enableComplexMapKeySerialization”的功能。。。似乎即使不启用ComplexMapKeySerialization,它仍将反序列化映射对象。我猜Map不是一个复杂的键,但很高兴知道我将来可以像这样解析复杂的键!我还修复了正确解析日期对象的代码。再次感谢!谢谢你的建议,我现在有几件事要尝试:)谢谢你的信息。我现在似乎能够提取出我想要的价值!我需要做更多的测试来了解“enableComplexMapKeySerialization”的功能。。。似乎即使不启用ComplexMapKeySerialization,它仍将反序列化映射对象。我猜Map不是一个复杂的键,但很高兴知道我将来可以像这样解析复杂的键!我还修复了正确解析日期对象的代码。再次感谢!