Подтвердить что ты не робот

Как преобразовать следующую строку json в объект java?

Я хочу преобразовать следующую строку JSON в объект java:

String jsonString = "{
"libraryname":"My Library",
"mymusic":[{"Artist Name":"Aaron","Song Name":"Beautiful"},
{"Artist Name":"Britney","Song Name":"Oops I did It Again"},
{"Artist Name":"Britney","Song Name":"Stronger"}]}"

Моя цель - легко получить к нему доступ:

(e.g. MyJsonObject myobj = new MyJsonObject(jsonString)
myobj.mymusic[0].id would give me the ID, myobj.libraryname gives me "My Library").

Я слышал о Джексоне, но я не уверен, как его использовать, чтобы соответствовать строке json, которую я имею, начиная с его не только ключевых пар значений из-за включенного списка "mymusic". Как я могу выполнить это с Джексоном или есть какой-то более простой способ, которым я могу это сделать, если Джексон не лучший для этого?

4b9b3361

Ответ 1

Не нужно идти с GSON для этого; Джексон может делать либо обычные Карты/Списки:

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(json, Map.class);

или более удобное дерево JSON:

JsonNode rootNode = mapper.readTree(json);

Кстати, нет причин, по которым вы не могли бы фактически создавать классы Java и делать это (IMO) более удобно:

public class Library {
  @JsonProperty("libraryname")
  public String name;

  @JsonProperty("mymusic")
  public List<Song> songs;
}
public class Song {
  @JsonProperty("Artist Name") public String artistName;
  @JsonProperty("Song Name") public String songName;
}

Library lib = mapper.readValue(jsonString, Library.class);

Ответ 2

Проверьте Google Gson: http://code.google.com/p/google-gson/.

На своем веб-сайте:

Gson gson = new Gson(); // Or use new GsonBuilder().create();
MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2

Вам просто нужно создать класс MyType (переименованный, конечно) со всеми полями строки json. Это может немного усложниться, когда вы делаете массивы, если вы предпочитаете делать все парсинг вручную (также довольно легко), посмотрите http://www.json.org/ и загрузите источник Java для Json объекты парсера.

Ответ 3

Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonObject object = (JsonObject) parser.parse(response);// response will be the json String
YourPojo emp = gson.fromJson(object, YourPojo.class); 

Ответ 4

Gson также хорош для него: http://code.google.com/p/google-gson/

"Gson - это библиотека Java, которая может быть использована для преобразования объектов Java в их представление JSON. Его также можно использовать для преобразования строки JSON в эквивалентный объект Java. Gson может работать с произвольными объектами Java, включая ранее существовавшие объекты, у которых нет исходного кода."

Проверьте примеры API: https://sites.google.com/site/gson/gson-user-guide#TOC-Overview Дополнительные примеры: http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

Ответ 5

У меня есть интересная Джейсон Струн, и я не могу ее разобрать, потому что выглядит иначе. мне просто нужно взять статус и сообщение, поскольку объект может мне помочь?

{ "СЕРТИНФО": { "данные": нулевой, "responseStatus": { "Статус": "ERROR", "сообщения": [ "error.socket_timeout"], "redirectUrl": ""}}, "уязвимости": { "данные": нулевой, "responseStatus": { "статус": "ERROR", "сообщения": [ "error.socket_timeout"], "redirectUrl": ""}}, "SERVERCONFIG": { "данные": нуль "responseStatus": { "статус": "ERROR", "сообщения": [ "error.socket_timeout"], "redirectUrl": ""}}}