我需要使用Google Gson库将简单Java对象列表序列化为JSON。
物体:
public class SimpleNode {
private String imageIndex;
private String text;
public String getImageIndex() {
return imageIndex;
}
public void setImageIndex(String imageIndex) {
this.imageIndex = imageIndex;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
我编写了以下代码进行序列化:
List<SimpleNode> testNodes = repository.getElements(0);
Gson gson = new Gson();
String jsonNodesAsString = gson.toJson(testNodes);
它可以工作,但是JSON对象的字段名称是lowerCamelCase。像这样:
[
{
"imageIndex": "1",
"text": "Text 1"
},
{
"imageIndex": "2",
"text": "Text 2"
}
]
如何获取具有UpperCamelCase字段名称的JSON,如下所示:
[
{
"ImageIndex": "1",
"Text": "Text 1"
},
{
"ImageIndex": "2",
"Text": "Text 2"
}
]
我认为可以将成员变量重命名为UpperCamelCase,但是可能还有另一种方法吗?
来自文档:
Gson支持一些预定义的字段命名策略,以将标准Java字段名称(即以小写—“
sampleFieldNameInJava”开头的驼峰式名称)转换为Json字段名称(即sample_field_name_in_java或SampleFieldNameInJava)。有关预定义的命名策略的信息,请参见FieldNamingPolicy类。
它还具有基于注释的策略,允许客户在每个字段的基础上定义自定义名称。请注意,基于注释的策略具有字段名称验证,如果提供了无效的字段名称作为注释值,则将引发“运行时”异常。
以下是如何同时使用Gson命名策略功能的示例:
private class SomeObject {
@SerializedName("custom_naming")
private final String someField;
private final String someOtherField;
public SomeObject(String a, String b) {
this.someField = a;
this.someOtherField = b;
}
}
SomeObject someObject = new SomeObject("first", "second");
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
String jsonRepresentation = gson.toJson(someObject);
System.out.println(jsonRepresentation);
========输出========
{"custom_naming":"first","SomeOtherField":"second"}
但是,对于您想要的,您可以使用以下代码:
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
通过使用UPPER_CAMEL_CASE选项,您可以实现自己的目标。
我需要序列化一个简单的Java对象列表到JSON使用谷歌Gson库。 我想我可以将成员变量重命名为UpperCamelCase,但可能还有另一种方法?
问题内容: 我有以下JSON字符串: 我需要将值存储在单独的字符串中。 这是我到目前为止所拥有的,但这只是为我提供了整个JSON字符串,而不是特定的imgurl字段。 是JSON字符串。这是我的数据类: 问题答案: 解析这种简单的结构时,不需要专用的类。 解决方案1: 要使用gson从字符串中获取imgurURL,可以执行以下操作: 这使用原始解析到JsonObject中。 解决方案2: 另外,您
这是我目前所拥有的,但这只给了我整个JSON字符串,而不是特定的imgurl字段。 是JSON字符串。下面是我的数据类:
我有一个Java对象,我想序列化为JSON。但是,在此之前,我为该对象的字段设置了一些属性。现在我想将这个对象序列化为JSON。如何仅序列化显式赋值的字段,而基本上排除所有其他字段? 对我来说,在对象类上添加这些注释是不起作用的:和。原因是我有一些基本数据类型的字段。通过添加上述两个注释之一,我并没有阻止原始数据类型字段被序列化。例如,我有几个布尔字段,它们将被序列化为默认值。但是,我不希望这些字
问题内容: 我想使用套接字(在开发远程PC时)从Android客户端向Java服务器发送2个对象。 当然我知道上面的方法是行不通的,因为它可以提供。因此,现在我想知道如何使用Gson库对对象进行序列化和反序列化。提前致谢。 问题答案: gson可以在任何平台上与Java一起使用-不仅限于Android。 使用gson序列化单个对象: 使用gson反序列化为单个对象。 从示例中可以看到,gson非常
问题内容: 我需要将一些对象序列化为JSON并发送到WebService。如何使用org.json库?否则我将不得不使用另一个?这是我需要序列化的类: 我只放了类的变量和构造函数,但也有getter和setter方法。所以如果有人可以帮忙 问题答案: 没有注释的简单方法是使用Gson库 就那么简单: