[英]Parsing JSON Array using GSON
我有一個基本的JSON,數組中包含所有數據。 有人會認為從數組中獲取一個值很簡單,但是在嘗試了每種不同的解析方法多個小時之后,我可能會認為自己完全迷失了。 任何幫助將不勝感激。 對不起,這個問題的措辭令人討厭。
我知道我已經嘗試過使用JsonReader將JSON作為對象讀取,然后解析ID字段。 那將是我的最新嘗試,恐怕其他嘗試的代碼已被刪除,我無法提供有關上述嘗試的太多信息
JsonReader reader = new JsonReader(new FileReader(Constants.VersJson));
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
reader.beginArray();
if (name.equals("id")) {
System.out.println(reader.nextString());
下面,我將包含JSON數組的代碼段。
"versions": [
{
"id": "2.7",
"time": "2012-10-25T15:00:00+02:00",
"releaseTime": "2013-10-25T15:00:00+02:00",
"type": "Release"
},
{
"id": "2.6.4",
"time": "2011-12-2T14:01:07+02:00",
"releaseTime": "2013-12-2T14:01:07+02:00",
"type": "Develop"
},
{
"id": "2.5",
"time": "2010-11-24T21:05:00+02:00",
"releaseTime": "2013-11-25T01:04:05+02:00",
"type": "Develop"
您在此處發布的json格式不正確,例如,對其進行了糾正
{
"versions":[
{
"id":"2.7",
"time":"2012-10-25T15:00:00+02:00",
"releaseTime":"2013-10-25T15:00:00+02:00",
"type":"Release"
},
{
"id":"2.6.4",
"time":"2011-12-2T14:01:07+02:00",
"releaseTime":"2013-12-2T14:01:07+02:00",
"type":"Develop"
}
]
}
首先定義課程,您將獲得一切
public class Version {
private List<Versions> versions;
public List<Versions> getVersions() {
return versions;
}
public void setVersions(List<Versions> versions) {
this.versions = versions;
}
@Override
public String toString() {
return "Version [versions=" + versions + "]";
}
}
public class Versions {
private String id;
private String time;
private String releaseTime;
private String type;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getReleaseTime() {
return releaseTime;
}
public void setReleaseTime(String releaseTime) {
this.releaseTime = releaseTime;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "Versions [id=" + id + ", time=" + time + ", releaseTime="
+ releaseTime + ", type=" + type + "]";
}
}
最后,您可以像這里一樣解析JSON
JsonReader reader = new JsonReader(new FileReader(Constants.VersJson));
Gson gson = new Gson();
Version version = gson.fromJson(reader, Version.class);
我也遇到了使用gson解析json數組的問題,這是我的代碼解決了它
這是我的閱讀器類的功能
JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(myFile))); System.out.println( reader); Gson gson = new Gson(); JsonParser parser = new JsonParser(); JsonArray jArray = parser.parse(reader).getAsJsonArray(); ArrayList<JsonOperations> lcs = new ArrayList<JsonOperations>(); for(JsonElement obj : jArray ) { JsonOperations cse = gson.fromJson( obj , JsonOperations.class); lcs.add(cse); } for ( JsonOperations tUser : lcs) { System.out.println(tUser); }
我的json操作類是
public class JsonOperations { String match_id, pool_name, team1_name, team1_image, team2_name, team2_image, match_date, match_country, match_venue, predicted; public JsonOperations() { } public JsonOperations(String match_id, String pool_name, String team1_name, String team1_image, String team2_name, String team2_image, String match_date, String match_country, String match_venue, String predicted) { this.match_id = match_id; this.pool_name = pool_name; this.team1_name = team1_name; this.team1_image = team1_image; this.team2_name = team2_name; this.team2_image = team2_image; this.match_date = match_date; this.match_country = match_country; this.match_venue = match_venue; this.predicted = predicted; } public void set_team1(String team1_name) { this.team1_name = team1_name; } public void set_team2(String team2_name) { this.team2_name = team2_name; } public String get_team1() { return team1_name; } public String get_team2() { return team2_name; } @Override public String toString() { // TODO Auto-generated method stub return this.get_team1() + this.get_team2(); } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.