java - 我们如何将 GSON 中的 JsonWriter 转换为 JsonObject

标签 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" ).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");

关于java - 我们如何将 GSON 中的 JsonWriter 转换为 JsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703547/

相关文章:

java - 递归冒泡排序与普通冒泡排序

java - 套接字数据似乎没有到达客户端

json - Python Flask 以反斜杠返回 JSON curl 请求

java - 使用 Maven 在 Java Servlet 中找不到类

java - 让 Gson 对错误的类型抛出异常

java - DriverManager类是Java中的单例吗?

java - 子资源可以在 REST 中更改其 "parent"资源吗?

javascript - HttpDelete 和参数

javascript - JQGrid 4.3.2 读取JSON数据时getAccessor函数出错

java - 如何使用 GSON 从 JSON 响应中获取对象数组