Java Jackson-LIb-JsonArray格式
我使用jackson lib将json对象添加到jsonarray中,然后将jsonarray字符串化,将其作为字符串保存到a表中Java Jackson-LIb-JsonArray格式,java,json,jackson,Java,Json,Jackson,我使用jackson lib将json对象添加到jsonarray中,然后将jsonarray字符串化,将其作为字符串保存到a表中 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":
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"}]
那么,在没有map和空键的情况下,我如何才能得到最后一个结果呢?为什么它会首先添加这些键呢?我对代码做了一些小改动,我使用了以下maven依赖项,您使用的是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}]好的,最后我得到了它。因此,jackson模块的文档清楚地显示了应该如何对
JsonObject
进行序列化。它不是使用toString()
:
序列化(JsonElement->String)
您使用的是哪种杰克逊版本?@ΦXocę웃Пepeúpaツ 2.8.4您使用的不是Jackson,而是org。json@Sharon不,org.json使用的是
JSONObject
(大写json)好吧,Jackson使用的是JsonNode,ObjectNode但不是JSONObject您使用的是org.json。。。问题是notAs@cricket_007说我用的是jackson lib而不是org。json@azelix你真的是在用VertX包装Jackson。
ObjectMapper mapper = new ObjectMapper();
om.registerModule(new VertxJsonModule());
String jsonObject = mapper.writeValueAsString(new JsonObject());
String jsonArray = mapper.writeValueAsString(new JsonArray());