JSON dosyalarını ayrıştırmak için bir Android projesinde Jackson 1.9.5 kullanıyorum.Jackson ObjectMapper, keyfi JSON tuşları ile
Şimdiye kadar herhangi bir sorun olmadı ve ince Aşağıdaki kodu kullanarak dosyaları ayrıştırabilirsiniz: DetailSchema sınıf ilkel türleri ve sınıfları bir karışımı oluşur
AssetManager mgr = getAssets();
ObjectMapper mapper = new ObjectMapper();
try {
InputStream ifp = mgr.open("detail_schema.json");
schema = mapper.readValue(ifp, DetailSchema.class);
} catch (IOException e) {
e.printStackTrace();
}
. Şimdi aşağıdaki gibi bazı JSON ayrıştırmak istediğiniz bir problem haline çalıştırıyorum:
muhtemelen elden önce harita anahtarlarını bilemez"fields": {
"Suburb": "Paddington",
"State": "NSW",
"Post Code": "2074",
"Lollipop": "Foo Bar Haz"
}
(onlar kullanıcı tanımlı olabilir). Bu nedenle, ilişkili Java sınıfının neye benzediğinden emin değilim.
Yani, bu örneğin, gibi görünebilir:
public class MyClass {
public String Suburb;
public String State;
public String PostCode;
public String Lollipop;
}
Ama bu JSON dosyasına başka örneği için doğru olmayabilir. İdeal olarak, Jackson'ın değerleri NameValuePair gibi bir şeye eşlemesi için bir yola ihtiyacım var. Otomatik nesne eşlemenin bu durumda bir seçenek olmayacağından şüpheleniyorum - birisi bunu onaylayabilir mi, reddedebilir mi?
Büyük teşekkürler! Bir Harita benim amacım için iyi çalışır. – aaronsnoswell
Aslında bir "Harita" almak için özel bir sınıf kullanmak zorunda değilsiniz, Jackson 'Map' arabiriminin bir uygulamasına doğrudan seriyi atayabilirsiniz, örneğin:' Harita jsonFields = mapper.readValue (ifp, HashMap .class) ' – brianmearns