我从 URL 得到了一个 JSON,它看起来像:|
{"total_users_count":1,
"users":[
{"first_name":"jan",
"email":"admin@localhost",
"city":null,
"position":"",
"experience_years":"5 - 8",
"salary_expectations":"0 - 7300"}
// ,{ ... }
]
}
在这个响应中会有更多的用户。我的代码:
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream is = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
System.out.println(is.toString());
System.out.println(isr.toString());
CandidateDTO candidateDTO = new Gson().fromJson(isr, CandidateDTO.class);
// using the deserialized object
System.out.println(candidateDTO.total_users_count);
System.out.println(candidateDTO.first_name);
System.out.println(candidateDTO.email);
System.out.println(candidateDTO.city);
System.out.println(candidateDTO.position);
System.out.println(candidateDTO.experience_years);
System.out.println(candidateDTO.salary_expectations);
private class CandidateDTO {
int total_users_count;
Map <String, String> first_name;
String email;
String city;
String position;
Integer experience_years;
Integer salary_expectations;
}
不幸的是,这段代码不起作用,我无法将用户添加到我的 map 。这有什么问题吗?
最佳答案
users 是一个集合(对象数组),因此您需要像这样创建一个集合。
public class CandidateDTO {
int total_users_count;
List<User> users = new ArrayList<User>();
//Set<User> users = new HashSet<User>();
}
public class User{
String first_name;
String email;
String city;
String position;
String experience_years;
String salary_expectations;
}
关于java - 从 InputStreamReader 将 Json 转换为 gson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46605160/