2

JSONデータが与えられたときにJavaでJSONオブジェクトを生成するツールはありますか?このツールは、「人気のある」JSONライブラリの1つを想定するか、使用する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

ObjectMapperJacksonを使用すると、JSONオブジェクトを表すPOJOを使用して作成するのと同じくらい簡単です。

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とJavaPOJOを変換するための一般的なフレームワークです。

于 2012-09-24T01:14:45.720 に答える
0

FlexJsonも、私が試したjacksonに似た優れたライブラリです。

GsonFastJsonjson-libなどの他のオプションも試すことができます。

どれが好きで、その理由を教えてください。

于 2012-09-24T11:07:17.903 に答える