2011-01-03 21 views
10

JSON 'tan veriyi android API'leri aracılığıyla sınıfımın alanlarına eşlemenin kolay bir yolu var mı?JSON - Java sınıfı

JSON:

{ email: 'email', password: 'pass' } 

Benim sınıfı:

class Credentials 
{ 
    string email; 
    string password; 
} 
+0

İşte bir örnek: http://goo.gl/BsuaM –

cevap

7

org.json -Package'ı kullanın.

JSONObject x = new JSONObject(jsonString); 
Credentials c = new Credentials(); 
c.email = x.getString("email"); 
c.password = x.getString("password"); 

Aynı zamanda android çalışma zamanının bir parçası, bu nedenle herhangi bir harici pakete ihtiyacınız yok.

+4

Gerçekten dahil, ancak veriyi tam olarak eşleştirmiyor. JSON'u ayrıştırır/yazar ve basit bir düğüm tabanlı API sunar. Ama senin kodun burada haritalamayı yapıyor. – StaxMan

+1

Bunu, alanların Kimlik Bilgilerinde bir kurucu yaparak yapıyorum, böylece aynı kodu 2 satırda yapabilirim. JSONObject x = yeni JSONObject (jsonString); Kimlik bilgileri c = yeni Kimlik Bilgileri (x.getString ("e-posta"), x.getString ("parola")); – JPM

7

Sen GSON kullanabilirsiniz.

+2

HTC telefonları ile bu sorunun farkında olmak: http://sites.google.com/site/gson/gson-on-android –

0

Sana u almak istiyorum birden fazla Kimlik Bilgilerini ... Bir JSON dosyasına dışına aynı anda çeşitli değerler almak için bir JSONArray kullanabilirsiniz org.json paketi ile

olduğunu varsayalım.

13

Jackson'u kullanın. Çok daha rahat (ve performans konularında ise, daha hızlı) birlikte org.json sınıfları ve özel kod kullanmaktan daha:

Credentials c = new ObjectMapper().readValue(jsonString, Credentials.class); 

(sadece Kimlik Bilgilerinin alanlar 'kamusal' keşfedilmeyi olması gerektiğini unutmayın; ya olmalı setter metodları)