Java InputStream 到 JsonObject - GSON
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/30085721/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
InputStream to JsonObject - GSON
提问by JochemQuery
I've a lot of trouble converting a result from this api to a JsonObject.
将此 api 的结果转换为 JsonObject 时遇到了很多麻烦。
The "result" stays null no matter what I try to do.
无论我尝试做什么,“结果”都保持为空。
URL url = new URL(urlString);
InputStream input = url.openStream();
Reader reader = new InputStreamReader(in, "UTF-8");
JsonResult result = new Gson().fromJson(reader, JsonResult.class);
JsonResult class
JsonResult 类
public class JsonResult {
private String status;
private Meta meta;
private ArrayList<Player> players;
}
class Meta{
private String count;
}
Json:
杰森:
{"status":"ok","meta":{"count":12},"data":[{"nickname":"DataBase","account_id":500566109},{"nickname":"database007","account_id":514382449},{"nickname":"Database04","account_id":504367425},{"nickname":"database08","account_id":515081772},{"nickname":"database1","account_id":503282284},{"nickname":"database1221","account_id":506709044},{"nickname":"database123","account_id":508409172},{"nickname":"database1337","account_id":501661259},{"nickname":"database169","account_id":503884400},{"nickname":"database2","account_id":504337382},{"nickname":"database93","account_id":518691821},{"nickname":"databaseking66","account_id":505911069}]}
Note: This is for a school project
注意:这是一个学校项目
Note 2: I did check and test a lot of other solutions from SO but didn't find or understand the correct one.
注 2:我确实检查并测试了来自 SO 的许多其他解决方案,但没有找到或理解正确的解决方案。
Edit 1:
编辑1:
public class JsonResult {
@SerializedName("status")
public String status;
@SerializedName("meta")
public Meta meta;
@SerializedName("data")
public Player[] players;
}
class Meta{
@SerializedName("count")
private String count;
}
Player class
播放器类
public class Player {
private int account_id;
private String nickname;
public Player(int account_id, String nickname){
this.account_id = account_id;
this.nickname = nickname;
}
//Generated
public void setAccount_id(int account_id) {
this.account_id = account_id;
}
//Generated
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String toString() {
return this.account_id + this.nickname;
}
}
采纳答案by Ads
In your JsonResult class change
在您的 JsonResult 类中更改
public class JsonResult {
private String status;
private Meta meta;
@SerializedName("data")
private ArrayList<Player> players;
}