所以我想解析一下我用GSON從api獲得的json。所有的例子都非常清楚,我完美地運作了它。但現在API給了我這樣的東西。在第二個大括號中爲項目製作課程不起作用,請參見下文。用GSON解析內層數組,從API JSON
所以我的問題是沒有人有一個想法如何使這項工作?
SOLUTION:
存放在這個地方,member.json
{"Peter":{"id":585897,"name":"PhPeter","profileIconId":691,"age":99,"email":"[email protected] "}}
類,Member.java
package JsonPackage;
public class Summoner {
int id;
String name;
int profileIconId;
int summonerLevel;
long revisionDate;
//getters setters
public String getName() {
return name;
}
public int getId() {
return id;
}
public int getProfileIconId() {
return profileIconId;
}
public int getSummonerLevel() {
return summonerLevel;
}
public long getRevisionDate() {
return revisionDate;
}
}
主類,MemberRead2Java.java:
package JsonPackage;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.StringReader;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import com.google.gson.Gson;
public class ReadSummonerObject {
public static void main(String[] args) {
Gson gson = new Gson();
try {
BufferedReader br = new BufferedReader(new FileReader("C:\\member.json")); //path to your file
Object obj = gson.fromJson(br, Object.class);
if (obj instanceof Map) {
Map map = (Map) obj;
Collection coll = map.values();
Iterator iter = coll.iterator();
while (iter.hasNext()) {
Object str = iter.next();
StringReader sr = new StringReader(str.toString());
Summoner summonerObj = gson.fromJson(sr, Summoner.class);
System.out.println("Id: " + summonerObj.getId());
System.out.println("Name: " +summonerObj.getName());
System.out.println("ProfileIconID: " + summonerObj.getProfileIconId());
System.out.println("SummonerLevel: " + summonerObj.getSummonerLevel());
System.out.println("RevisionDate: " + summonerObj.getRevisionDate());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
它爲什麼不起作用?錯誤信息說了什麼? – Dunes 2014-09-19 18:09:53
您知道,將每個JSON字符串映射到POJO是沒有必要或不合理的。 – 2014-09-19 18:22:20
請提供必要的詳細信息。你需要什麼幫助? – dosdebug 2014-09-19 18:22:28