次の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文字列に合わせる方法がわかりません。ジャクソンでこれをどのように達成できますか、またはジャクソンがこれに最適でない場合、これを達成する簡単な方法はありますか?
このために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);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加