我正在尝试映射以下回复:
{
"data": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
"bio": "This is my bio",
"website": "http://snoopdogg.com",
"counts": {
"media": 1320,
"follows": 420,
"followed_by": 3410
}
}
进入一个对象,我只想检索用户名,full_name和id字段。
Ex:类似于:
public class User{
String id;
String username;
String full_name;
// getters + setters
}
有没有办法在不先将数据对象存储到Map中的情况下执行此操作?
答案 0 :(得分:2)
使用Jackson API。应该很简单:
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonString, User.class); //jsonString is your actual json string.
您可能希望调整User类以匹配JSON字符串。例如。您的用户类需要有一个&#39;数据&#39;字段为List<Data> data;
其中&#39;数据&#39;是另一个POJO。您可以在&#39;数据&#39;中添加&#34; id&#34;,&#34; userName&#34;等字段。 POJO。
答案 1 :(得分:0)
您可以手动执行此操作,例如regexp或使用任何JSON库,如Jackson,GSON等。
答案 2 :(得分:0)
使用GSON非常简单。假设您的json存储在String jsonString
变量中。
Gson gson = new Gson();
YourObject = gson.fromJson(jsonString, YourObject.class);
虽然我不确定会发生什么,因为您的jsonString
没有名为User
的密钥。但是,如果您首先从data
中提取jsonString
并将您的POJO命名为Data
,这应该会有用。