Gson JsonArray 漂亮的打印
Gson JsonArray pretty printing
这是我的例子:
public class Obj {
String field1;
int field2;
public Obj(String field1, int field2) {
this.field1 = field1;
this.field2 = field2;
}
public static void main(String[] args)
{
final Obj o1 = new Obj("string1",1);
final Obj o2 = new Obj("string2",2);
List<Obj> list = new ArrayList<Obj>(){{
add(o1);
add(o2);
}};
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement element = gson.toJsonTree(list, new TypeToken<List<Obj>>(){}.getType());
JsonArray jsonArray = element.getAsJsonArray();
System.out.println("1-");
System.out.println(jsonArray.toString());
String json = gson.toJson(o1);
System.out.println("2-");
System.out.println(json);
}
}
输出:
1-
[{"field1":"string1","field2":1},{"field1":"string2","field2":2}]
2-
{
"field1": "string1",
"field2": 1
}
如何为 jsonArray 启用漂亮的打印?
我认为这足以解释我的问题,但是这里有一些 bla bla bla bla 因为 Whosebug 询问我更多细节让我 post 这个问题。
您可以使用 Jackson 库。
检查此 post:
Convert JSON String to Pretty Print JSON output using Jackson
问题真的很相似
toString(2) 尊重标识空间
System.out.println(json.toString(2));
如果您的项目中有服务器,我建议将 index.jsp 和 out.println 简化为 JSON。并将此插件添加到您的 Google Chrome JSON Viewer
你打印得漂亮Json.
JsonArray::toString
似乎没有提供配置漂亮打印的方法。
您可能只需要使用您的 Gson
实例反序列化它:
System.out.println("3-");
System.out.println(gson.toJson(jsonArray));
这是我的例子:
public class Obj {
String field1;
int field2;
public Obj(String field1, int field2) {
this.field1 = field1;
this.field2 = field2;
}
public static void main(String[] args)
{
final Obj o1 = new Obj("string1",1);
final Obj o2 = new Obj("string2",2);
List<Obj> list = new ArrayList<Obj>(){{
add(o1);
add(o2);
}};
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement element = gson.toJsonTree(list, new TypeToken<List<Obj>>(){}.getType());
JsonArray jsonArray = element.getAsJsonArray();
System.out.println("1-");
System.out.println(jsonArray.toString());
String json = gson.toJson(o1);
System.out.println("2-");
System.out.println(json);
}
}
输出:
1-
[{"field1":"string1","field2":1},{"field1":"string2","field2":2}]
2-
{
"field1": "string1",
"field2": 1
}
如何为 jsonArray 启用漂亮的打印?
我认为这足以解释我的问题,但是这里有一些 bla bla bla bla 因为 Whosebug 询问我更多细节让我 post 这个问题。
您可以使用 Jackson 库。
检查此 post: Convert JSON String to Pretty Print JSON output using Jackson
问题真的很相似
toString(2) 尊重标识空间
System.out.println(json.toString(2));
如果您的项目中有服务器,我建议将 index.jsp 和 out.println 简化为 JSON。并将此插件添加到您的 Google Chrome JSON Viewer
你打印得漂亮Json.
JsonArray::toString
似乎没有提供配置漂亮打印的方法。
您可能只需要使用您的 Gson
实例反序列化它:
System.out.println("3-");
System.out.println(gson.toJson(jsonArray));