Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 - Fatal编程技术网

在Java中生成Gson的方法

在Java中生成Gson的方法,java,json,Java,Json,我正在寻找用Java生成Gson的最佳解决方案: 例如,我想得到如下字符串: { "mainContainer":{ "firstContainer":{ "value":"1" }, "secondContainer":{ "value":"2" } } } 使用JsonBuilderFactory的第一种方法(实现速度更快): JsonBuilderFactory factory = Json.

我正在寻找用Java生成Gson的最佳解决方案:

例如,我想得到如下字符串:

{
   "mainContainer":{
      "firstContainer":{
         "value":"1"
      },
      "secondContainer":{
         "value":"2"
      }
   }
}
使用
JsonBuilderFactory
的第一种方法(实现速度更快):

JsonBuilderFactory factory = Json.createBuilderFactory(config);
JsonObject value = factory.createObjectBuilder()
     .add("mainContainer", factory.createObjectBuilder()
         .add("firstContainer", factory.createObjectBuilder()
             .add("value", "1")
         .add("secondContainer", factory.createObjectBuilder()
             .add("value", "2"))
     .add("phoneNumber", factory.createArrayBuilder()))
.build();
第二个解决方案(我认为应该更快):

然后:
String myJson=gson.toJson(新的JsonClass(“1”、“2”))


什么解决方案更好?我不关心实现时间,只关心工作时间。

也许创建一个简单的测试,运行它们并进行比较?
public class JsonClass {
    MainContainer mainContainer;
    public JsonClass(String projectId, String parentKey){
            mainContainer = new MainContainer(projectId, parentKey);
    }
    class MainContainer{    
        private FirstContainer firstContainer;
        private SecondContainer secondContainer;
        public MainContainer(String f, String s){
            firstContainer = new FirstContainer(f);
            secondContainer = new SecondContainer(s);
        }
        class FirstContainer{
            protected String value;
            public FirstContainer(String value){this.value = value;}
        }   
        class SecondContainer{
            private String value; 
            public SecondContainer(String value){this.value = value;}
        }
    }
}