为了账号安全,请及时绑定邮箱和手机立即绑定

如何将以下json字符串转换为java对象?

如何将以下json字符串转换为java对象?

慕的地10843 2019-10-17 15:20:01
我想将以下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字符串,因为它不仅仅是键值对。如果杰克逊不是最好的选择,我该如何用杰克逊完成?
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

为此,无需与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);


查看完整回答
反对 回复 2019-10-17
?
米脂

TA贡献1836条经验 获得超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); 


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信