{
"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"
}
]
}
}
}
]
}
]
}
}
Yukarıdaki JSON posta kodunu almaya çalışıyorum. Onu ayrıştırmak için gson kullanıyorum. Ben JSON için çok yeni ve burada tüm bu yazılardan okuduklarımdan (bazıları buna çok benzer), alanların olduğu gibi olması gerektiğini anladım. Yani anlıyorum, 4 sınıf vize Yanıt, görüş, Sonuç ve Adres yapmak zorundayım. Statik iç içe geçmiş sınıflar yaptım, ama sadece çıktı olarak boş değer elde ediyorum. Bir sonraki JSON'da birden çok adresim var. Ama bu tek cevapta sıkışıp kaldım. , Bunun yerine sınıfların bir demet sahip JsonParser
kullanabilirsiniz kısa Örneğin Yuvalanmış bir JSON kullanarak gson'u
"PostalCode"
gerekiyorsa bana bir boş değer
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;
}
}
}
}
Bunun ile uğraşıyorum, eğer birisi bana yardım ederse takdir edeceğim. – RFT