Gson JsonArray漂亮印刷

时间:2015-01-23 09:17:34

标签: java json gson

以下是我的例子:

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问我更多细节让我发帖提问。

4 个答案:

答案 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)

你可以使用杰克逊图书馆。

查看此帖子: Convert JSON String to Pretty Print JSON output using Jackson

问题非常相似。

答案 3 :(得分:0)

如果您的项目中有服务器,我建议使用简单的index.jsp和out.println这个JSON。并将此插件添加到您的Google Chrome JSON Viewer

你得到漂亮的Print Json。