Java 集合的Gson属性名称
我有这个实体Java 集合的Gson属性名称,java,json,gson,Java,Json,Gson,我有这个实体 class Foo { public String FooName; public String FooId; } 我从一个方法中得到一个Foo数组,并将其序列化为json字符串,如下所示 Foo[] foos = getFoos(); String json = gson.toJson(foos, Foo[].class); { "foos":[ { "FooName" : "FirstFoo",
class Foo
{
public String FooName;
public String FooId;
}
我从一个方法中得到一个Foo
数组,并将其序列化为json字符串,如下所示
Foo[] foos = getFoos();
String json = gson.toJson(foos, Foo[].class);
{
"foos":[
{
"FooName" : "FirstFoo",
"FooId" : "1"
},
{
"FooName" : "SecondFoo",
"FooId" : "2"
}
]
}
这就产生了
[
{
"FooName" : "FirstFoo",
"FooId" : "1"
},
{
"FooName" : "SecondFoo",
"FooId" : "2"
}
]
这很好,但我需要有这样一个包装器属性
Foo[] foos = getFoos();
String json = gson.toJson(foos, Foo[].class);
{
"foos":[
{
"FooName" : "FirstFoo",
"FooId" : "1"
},
{
"FooName" : "SecondFoo",
"FooId" : "2"
}
]
}
我知道我可以创建一个包装器类
class Foos
{
Foo[] foos;
}
在gson中使用Foos.class,但我有100多个类,比如Foo
,我不想为每个类创建一个包装器类。我还考虑对返回的原始json执行一些字符串操作,以添加包装器属性,但我将其保留在计划B(甚至C)中。
所以,我想知道是否有一种方法可以在gson中添加一个包装器属性,就像我上面所问的那样
谢谢。这里有一个手动方法:
final Gson gson = new Gson();
final Foo[] foos = new Foo[] {};
final JsonElement elem = gson.toJsonTree(foos);
final JsonObject jsonObj = new JsonObject();
jsonObj.add("foo", elem);
System.out.println(jsonObj.toString());
对不起,我的意思是
toJsonTree
。我的错。