将JSON数据转换为一组Java对象 [英] Converting JSON Data to a set of Java objects

查看:122
本文介绍了将JSON数据转换为一组Java对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否提供了在给定JSON数据时在Java中生成JSON对象的工具?该工具将采用流行的" JSON库之一,或者让您指定要使用的JSON库. 例如使用有效的JSON数据

Is there a tool that generates the JSON objects in Java when given JSON data? This tool would either assume one of the "popular" JSON library or would let you specify the JSON library to be used. For example with valid JSON data

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

使用"org.json.simple.*"时,该工具会生成类似这样的内容

when using "org.json.simple.*" the tool would generate something like this

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,就像使用

With Jackson, it's as simple as using an ObjectMapper and creating a POJO to represent your JSON object:

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:

To do the reverse, use writeValue:

Person person = new Person();
person.setAge(100);
// ...
mapper.writeValue(..., person);

这篇关于将JSON数据转换为一组Java对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆