Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集合的Gson属性名称_Java_Json_Gson - Fatal编程技术网

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
。我的错。