{
"Response": {
"MetaInfo": {
"Timestamp": "2011-11-21T14:55:06.556Z"
},
"View": [
{
"_type": "SearchResultsViewType",
"ViewId": 0,
"Result": [
{
"Relevance": 0.56,
"MatchQuality": {
"Country": 1,
"State": 1,
"County": 1,
"City": 1,
"PostalCode": 1
},
"Location": {
"LocationType": "point",
"DisplayPosition": {
"Latitude": 50.1105,
"Longitude": 8.684
},
"MapView": {
"_type": "GeoBoundingBoxType",
"TopLeft": {
"Latitude": 50.1194932,
"Longitude": 8.6699768
},
"BottomRight": {
"Latitude": 50.1015068,
"Longitude": 8.6980232
}
},
"Address": {
"Country": "DEU",
"State": "Hessen",
"County": "Frankfurt am Main",
"City": "Frankfurt am Main",
"District": "Frankfurt am Main",
"PostalCode": "60311",
"AdditionalData": [
{
"value": "Germany",
"key": "CountryName"
}
]
}
}
}
]
}
]
}
}
私は上記のJSONから郵便番号を取得しようとしています。私はそれを解析するためにgsonを使用しています。私はJSONの初心者です。ここにあるすべての記事(これに非常に似ています)から読み込んだものから、フィールド名はそのままであるはずです。だから、私は4つのクラス、レスポンス、ビュー、結果、アドレスを作る必要があることを理解しています。私はそれらに静的なネストされたクラスを作ったが、出力としてnull値しか得ていない。次のJSONでは、私は複数のアドレスを持っています。しかし、私はこの単一の応答に立ち往生しています。gsonを使用して入れ子になったJSONを解析する
短い例えば、私はこのコードでタイムスタンプを取得しようとしていますが、唯一の"PostalCode"
が必要な場合、それは私にNULL値
public class ParseJSON {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("try.json"));
Gson gson = new GsonBuilder().create();
Pojo pojo = gson.fromJson(br,Pojo.class);
System.out.println(Pojo.Response.MetaInfo.Timestamp);
br.close();
}
}
class Pojo {
public Pojo() { }
static class Response{
static class MetaInfo {
static public String Timestamp;
public String getTimestamp() {
return Timestamp;
}
}
}
}
誰かが私に感謝するなら、私はこれで苦労しています。 – RFT