developer tip

다음 json 문자열을 Java 객체로 변환하는 방법은 무엇입니까?

copycodes 2021. 1. 10. 17:27
반응형

다음 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").

잭슨에 대해 들어 봤지만 "mymusic"목록이 포함되어 있기 때문에 키 값 쌍이 아니기 때문에 내가 가지고있는 json 문자열에 맞게 사용하는 방법을 잘 모르겠습니다. Jackson과 함께 이것을 어떻게 수행 할 수 있습니까? 아니면 Jackson이 최선이 아닌 경우이를 수행 할 수있는 더 쉬운 방법이 있습니까?


이를 위해 GSON과 함께 갈 필요가 없습니다. Jackson은 일반지도 / 목록 중 하나를 수행 할 수 있습니다.

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

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

json 문자열의 모든 필드로 MyType 클래스 (물론 이름이 변경됨)를 만들어야합니다. 배열을 수행 할 때 조금 더 복잡해질 수 있습니다. 모든 구문 분석을 수동으로 (또한 매우 쉽습니다) 선호하는 경우 http://www.json.org/를 확인 하고 Json 용 Java 소스를 다운로드하십시오. 파서 개체.


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

Gson도 좋습니다 : http://code.google.com/p/google-gson/

"Gson은 Java 객체를 JSON 표현으로 변환하는 데 사용할 수있는 Java 라이브러리입니다. 또한 JSON 문자열을 동등한 Java 객체로 변환하는 데 사용할 수 있습니다. Gson은 기존 객체를 포함하여 임의의 Java 객체와 함께 작업 할 수 있습니다. 소스 코드가 없습니다. "

Check the API examples: https://sites.google.com/site/gson/gson-user-guide#TOC-Overview More examples: http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

ReferenceURL : https://stackoverflow.com/questions/10308452/how-to-convert-the-following-json-string-to-java-object

반응형