![](/img/trans.png)
[英]How to get Jackson to convert a JSONObject as string in the payload?
[英]How Jackson-Creating a JsonObject
我想創建一個像這樣的JsonObject:
{
Response: 200,
Lists: [
{
Test: "Math",
Result: "6",
Credit: "3"
},
{
Test: "C++",
Result: "10",
Credit: "6"
}
]
}
我知道用lib org.json創建這個但是和Jackson一起創建嗎? 我嘗試使用
JsonNodeFactory nodeFactory = new JsonNodeFactory();
但我有這個問題
The constructor JsonNodeFactory() is not visible
請務必使用最新版本的Jackson。 他們從codehaus遷移到FasterXML: http ://wiki.fasterxml.com/JacksonHome。
您不需要實例化工廠。 您可以使用public static one: com.fasterxml.jackson.databind.node.JsonNodeFactory.instance
。
JsonNodeFactory factory = JsonNodeFactory.instance;
ObjectNode root = factory.objectNode();
root.put("Response", 200);
ArrayNode list = factory.arrayNode();
list.add(...);
...
root.set("List", list);
請注意,Jackson是一個很好的庫,可以將Java POJO映射到JSON(以及后面)。 您可以創建Jackson將序列化為JSON的Java類,而不是手動創建JSON結構:
public class Item {
@JsonProperty("Test")
private String test;
@JsonProperty("Result")
private String result;
@JsonProperty("Credit")
private String credit;
}
public class Root {
@JsonProperty("Response")
private int response;
@JsonProperty("List")
private List<Item> list;
}
public static void main(String[] args) {
Root root = new Root();
...
String json = new ObjectMapper().writeValueAsString(root)
}
要創建JsonNode對象,請使用ObjectMapper。 例如:
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readValue(JSON_STRING, JsonNode.class)
有關信息,請參閱Jackson文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.