[英]Parsing json with gson and java
我正在努力用Java和gson解析json输出,但是我真的很困。
我将不胜感激。
这是我的示例JSON文件:
{
"sportId": 29,
"last": 26142386,
"league": [
{
"id": 1833,
"events": [
{
"id": 383911973,
"starts": "2015-01-22T21:00:00Z",
"home": "America de Natal",
"away": "Barras",
"rotNum": "901",
"liveStatus": 0,
"status": "O",
"parlayRestriction": 0
},
{
"id": 383911974,
"starts": "2015-01-22T21:00:00Z",
"home": "Baraunas RN",
"away": "ASSU RN",
"rotNum": "904",
"liveStatus": 0,
"status": "O",
"parlayRestriction": 0
}
]
}
]
}
我的目标是制作以下形式的二维数组(或类似形式):
leagueId, eventId, home, away
------------------------------
1 1 a b
. . . .
. . . .
etc etc etc etc
为了将数据插入到MYSQL表中。
我写了以下课程:
public class Fixtures {
int last;
int sportId;
ArrayList<Leagues> league = new ArrayList<Leagues>();
public ArrayList<Leagues> getListOfLeagues() {
return league;
}
public int getSportId(){
return sportId;
}
public int getLast(){
return last;
}
}
public class Leagues {
int id;
ArrayList<Events> events;
public int getLeagueId(){
return id;
}
public ArrayList<Events> getListOfEvents() {
return events;
}
}
public class Events {
int id;
String home;
String away;
public int getEventId(){
return id;
}
public String getHome() {
return home;
}
public String getAway() {
return away;
}
}
和
Gson gson = new GsonBuilder().create();
Fixtures fixture = gson.fromJson(jsonsource, Fixtures.class);
System.out.println(fixture.getSportId());
System.out.println(fixture.getLast());
ArrayList<Leagues> Leagues = fixture.getListOfLeagues();
不知道如何进行:(
真正的答案是不要这样做。
你看过冬眠了吗? 就像C#的Entity。 它使您可以作为面向对象的实体结构与关系数据库进行交互,这就是我们习惯于思考事物的方式。
通常,当您有一组数据作为输入并且需要将这些数据放入数据库中时,您需要考虑以下几点:
如果您的模型是好的并且您的输入是好的(您的输入看起来很好),那么您就不必将数据放入中间层,您应该能够遍历适用的字段并将数据放入数据库中。 如果您不能这样做,建议您重组数据库。 同样,我知道这是一个横向答案,但是您确实提出了建议:)
好的,我知道了如何进行迭代:
for (Leagues leg : Leagues) {
System.out.println(leg.getLeagueId());
ArrayList<Events> Events = leg.getListOfEvents();
for (Events event : Events) {
System.out.println(event.getEventId());
System.out.println(event.getHome());
System.out.println(event.getAway());
System.out.println(event.getStarts());
}
}
谢谢大家
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.