以下是我的例子:
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因为stackoverflow问我更多细节让我发帖提问。
答案 0 :(得分:2)
toString(2)尊重缩进空格
System.out.println(json.toString(2));
答案 1 :(得分:2)
似乎JsonArray::toString
没有提供配置漂亮打印的方法。
您可能只需使用Gson
实例对其进行反序列化:
System.out.println("3-");
System.out.println(gson.toJson(jsonArray));
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您的项目中有服务器,我建议使用简单的index.jsp和out.println这个JSON。并将此插件添加到您的Google Chrome JSON Viewer
你得到漂亮的Print Json。