Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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中将JsonWriter转换为JsonObject_Java_Json_Gson - Fatal编程技术网

Java 如何在GSON中将JsonWriter转换为JsonObject

Java 如何在GSON中将JsonWriter转换为JsonObject,java,json,gson,Java,Json,Gson,有人能指导我如何在GSON中无需任何预定义对象就将JsonWriter转换为JsonObject吗 JsonWriter writer = new JsonWriter(new FileWriter("C:\\Users\\ravr\\Desktop\\outputJSONSChema.json")); writer.setIndent( " " ); writer.beginObject(); writer.name( "$schema"

有人能指导我如何在GSON中无需任何预定义对象就将JsonWriter转换为JsonObject吗

JsonWriter  writer = new JsonWriter(new FileWriter("C:\\Users\\ravr\\Desktop\\outputJSONSChema.json"));
        writer.setIndent( "    " );
        writer.beginObject();
        writer.name( "$schema" ).value( "http://json-schema.org/draft-04/schema#" );
        writer.name( "type" ).value( "object" );
            writer.name("properties");
                writer.beginObject();//1Properties START
                    writer.name( "Country" );
                        writer.beginObject();//2EMP START
                            writer.name( "type" ).value( "array" );
                            writer.name( "minItems" ).value(0);
                            writer.name( "maxItems" ).value("undefined");
                            writer.name( "items" );
                                writer.beginObject();//3 EMP ITEM START
                                    writer.name( "type" ).value( "object" );
                                    writer.name( "properties" );
                                        writer.beginObject();// 

                                            writer.name( "ID" );
                                                writer.beginObject();// 5 EMP ID START
                                                    writer.name( "type" ).value( "String" );
                                                writer.endObject(); // 5 EMP ID END

                                            writer.name( "NAME" );
                                                writer.beginObject();// 5 EMP ID START
                                                    writer.name( "type" ).value( "String" );
                                                writer.endObject(); // 5 EMP ID END
                                        writer.endObject();
                                writer.endObject();//3 EMP ITEM END
                            writer.name( "required" );
                            writer.beginArray();
                                writer.value( "ID" );
                                writer.value( "NAME" );
                            writer.endArray();
                        writer.endObject();//2EMP END
                writer.endObject();//1Properties END
        writer.endObject();
        writer.flush();

快速而肮脏的解决方案是使用
StringWriter
而不是文件编写器:

StringWriter sw = new StringWriter();
JsonWriter  writer = new JsonWriter(sw);
// .. writing code

JsonObject obj = new JsonParser().parse(sw.toString()).getAsJsonObject();

否则,您将使用以下内容:

JsonObject obj = new JsonObject();
obj.add("name", jsonElement);
obj.addProperty("otherName", "value");

快速而肮脏的解决方案是使用
StringWriter
而不是文件编写器:

StringWriter sw = new StringWriter();
JsonWriter  writer = new JsonWriter(sw);
// .. writing code

JsonObject obj = new JsonParser().parse(sw.toString()).getAsJsonObject();

否则,您将使用以下内容:

JsonObject obj = new JsonObject();
obj.add("name", jsonElement);
obj.addProperty("otherName", "value");
您可以使用(它扩展了JsonWriter):

这样可以避免序列化和解析JSON数据

由于
JsonTreeWriter
不是公共Gson API的一部分,您可能希望将
JsonTreeWriter
源代码复制到您的包中(这很容易,因为它只使用公共Gson API)。

您可以使用(扩展了
JsonWriter
):

这样可以避免序列化和解析JSON数据

由于
JsonTreeWriter
不是公共Gson API的一部分,您可能希望将
JsonTreeWriter
源代码复制到包中(这很容易,因为它只使用公共Gson API)