java - 将 JSON 数据转换为一组 Java 对象

标签 java json

是否有一个工具可以在给定 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);

最佳答案

对于 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);

关于java - 将 JSON 数据转换为一组 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557695/

相关文章:

json - Haneke 导致 SwiftyJSON 的 'JSON?' 类型崩溃

java - Java 中是否有相当于 Actionscript 3.0 事件调度的方法?或者,如何在不相关的类实例之间有效地进行通信?

java - 拖放中的 NPE

java - 处理多个文件的 Ant 任务

python - 如何将类似字典的字符串转换为字典?

python - 如何在 Protobuf 中序列化嵌套消息中的默认值

java - @Autowireing 给出编译错误

java - Spring Boot 嵌入式 HornetQ 集群不转发消息

ruby-on-rails - 通过 API 在 Devise 中进行用户注册

c# - 我应该如何正确反序列化这个对象?