Jackson LIb JsonArray格式

时间:2017-04-03 09:38:44

标签: java json jackson

我正在使用jackson lib将json对象添加到jsonarray然后Stringify我的jsonarray将其保存到我的表中作为字符串

JsonObject obj = new JsonObject();
obj.put("id",1).put("data","test");

JsonArray arr = new JsonArray();
arr.add(obj);

arr.toString();

//out : [{"map":{"id":1,"data":"test"},"empty":false}]

//result wanted : [{"id":1,"data":"test"}]

那么如何在没有地图和空键的情况下获得最后的结果,以及为什么首先添加这些键呢?

2 个答案:

答案 0 :(得分:0)

我对代码做了一些小改动,我使用了以下maven依赖https://mvnrepository.com/artifact/org.json/json/20160810,你使用的是org.json而不是jackson。

JSONObject obj = new JSONObject();
            try {
                obj.put("id",1).put("data","test");
        } catch (JSONException e1) {

            e1.printStackTrace();
        }

        JSONArray arr = new JSONArray();
        arr.put(obj);

        System.out.println(arr.toString());

输出:[{“data”:“test”,“id”:1}]

答案 1 :(得分:0)

好的,最后我明白了。因此,jackson模块的文档清楚地显示了应该如何序列化JsonObject使用toString()

  

序列化(JsonElement - > String)

ObjectMapper mapper = new ObjectMapper();
om.registerModule(new VertxJsonModule());

String jsonObject = mapper.writeValueAsString(new JsonObject());

String jsonArray = mapper.writeValueAsString(new JsonArray());