2

当给定 JSON 数据时,是否有一种工具可以在 Java 中生成 JSON 对象?此工具将假定是“流行” JSON 库之一,或者让您指定要使用的 JSON 库。例如使用有效的 JSON 数据

{
    "age":100,
    "name":"mkyong.com",
    "messages":["msg 1","msg 2","msg 3"]
}

当使用“ org.json.simple.*”时,该工具会生成类似这样的东西

JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));

JSONArray list = new JSONArray();
list.add("msg 1");
list.add("msg 2");
list.add("msg 3");

obj.put("messages", list);
4

3 回答 3

5

使用 Jackson,就像使用ObjectMapper并创建 POJO 来表示您的 JSON 对象一样简单:

public class Person {
  private int age;
  private String name;
  private List<String> messages;

  // getters/setters
}

接着:

String json = "{\"age\":100,\"name\":\"mkyong.com\",\"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json.getBytes(), Person.class);
System.out.println(person.getMessages()); // [msg 1, msg 2, msg 3]

要执行相反的操作,请使用writeValue

Person person = new Person();
person.setAge(100);
// ...
mapper.writeValue(..., person);
于 2012-09-24T01:22:44.827 回答
2

Jackson是一个流行的框架,用于在 JSON 和 Java POJO 之间进行转换。

于 2012-09-24T01:14:45.720 回答
0

FlexJson也是一个很好的库,类似于我尝试过的 jackson。

您还可以尝试其他选项,例如GsonFastJsonjson-lib

请分享你喜欢哪一个以及为什么。

于 2012-09-24T11:07:17.903 回答