簡體   English   中英

將JSON數據轉換為一組Java對象

[英]Converting JSON Data to a set of Java objects

給定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);

Jackson是在JSON和Java POJO之間轉換的流行框架。

FlexJson還是一個不錯的庫,類似於我嘗試過的jackson。

您還可以嘗試其他選項,例如GsonFastJsonjson-lib

請分享您喜歡哪一個,為什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM