2012-08-02 11 views
8

mam wyjścia API takiego:JSONObject w JSONObject

{"user" : {"status" : {"stat1" : "54", "stats2" : "87"}}} 

utworzyć prosty JSONObject od tego API z:

JSONObject json = getJSONfromURL(URL); 

Po tym mogę odczytać danych dla użytkownika w taki sposób:

String user = json.getString("user"); 

Ale jak mogę uzyskać dane dla stat1 i stat2?

Odpowiedz

19

JSONObject zapewnia dostępowych, dla szeregu różnych typów danych zagnieżdżonych JSONObjects i JSONArrays, stosując JSONObject.getJSONObject(String), JSONObject.getJSONArray(String).

Biorąc swoją JSON, trzeba by zrobić coś takiego:

JSONObject json = getJSONfromURL(URL); 
JSONObject user = json.getJSONObject("user"); 
JSONObject status = user.getJSONObject("status"); 
int stat1 = status.getInt("stat1"); 

uwagę na brak obsługi błędów tutaj: na przykład kod zakłada istnienie zagnieżdżonych członków - należy sprawdzić null - i nie ma obsługi wyjątków.

+0

Czy chodziło Ci o 'JSONObject user = json.getJSONObject (" user ")'? –

+0

@CheJami Naprawiłem. dzięki – pb2q

1

Aby uzyskać dostęp do właściwości w JSON można analizować przy użyciu obiektu JSON.parse a następnie acceess wymagana nieruchomość jak:

var star1 = user.stat1; 
2
JSONObject mJsonObject = new JSONObject(response); 
JSONObject userJObject = mJsonObject.getJSONObject("user"); 
JSONObject statusJObject = userJObject.getJSONObject("status"); 
String stat1 = statusJObject.getInt("stat1"); 
String stats2 = statusJObject.getInt("stats2"); 

od twojej odpowiedzi użytkownika i Stan obiektu jest tak do tego użycia getJSONObject i stat1 i stats2 jest status klucz obiektu, więc do tego celu należy użyć metody getInt() metody uzyskiwania wartości liczb całkowitych i użycia metody uzyskiwania wartości String za pomocą metody getString().

Powiązane problemy