доступ к значению в объекте JSON - PullRequest
0 голосов
/ 27 мая 2011

У меня есть объект Json со следующими данными

{\ "data \": {\ "pdp0: \": {\ "recv \": {\ "packages \": \ "15104 \», \ "байт \": \ "9059817 \"}, \ "послал \": {\ "пакеты \": \ "9480 \", \ "байт \": \ "1687801 \"}},\ "gre0: \": {\ "RECV \": {\ "пакеты \": \ "0 \", \ "байт \": \ "0 \"}, \ "послал \": {\ "пакеты\ ": \" 0 \», \ "байт \": \ "0 \"}}, \ "tunl0: \": {\ "RECV \": {\ "пакеты \": \ "0 \",\ "байт \": \ "0 \"}, \ "посланные \": {\ "пакеты \": \ "0 \", \ "байт \": \ "0 \"}}, \ "usb0:\ ": {\" RECV \ ": {\" пакеты \ ": \" 0 \», \ "байт \": \ "0 \"}, \ "послал \": {\ "пакеты \": \"0 \", \ "байт \": \ "0 \"}}, \ "вот: \": {\ "RECV \": {\ "пакеты \": \ "48300 \", \ "байт \": \" 2616703 \ "}, \" послал \ ": {\" пакеты \ ": \" 48300 \», \ "байт \": \ "2616703 \"}}}, \ "вер \": \"1.4 \", \ "type \": \ "netdev \", \ "date \": \ "2011-4-13 14:10:21 \", \ "user \": \ "351863047772880 \",\ "time_stamp \": 1305313821541}

Если я хочу получить доступ к данным в пакетах data-> pdp0-> recv-> (здесь значение 15104), какую функцию следует использовать?

спасибо Сарат

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Вы можете использовать то, что предложил Алеадам. Тем не менее, было бы лучше использовать GSON для Java-объектов , потому что это позволяет вам сериализовать и десериализовать ваш JSON и из ваших Java-объектов.

1 голос
/ 27 мая 2011

Вы можете использовать обычный старый пакет org.json, чтобы получить вложенные объекты:

int packets = new JSONObject(str) // str is your JSON string as above
                 .getJSONObject("data")
                 .getJSONObject("pdp0")
                 .getJSONObject("recv")
                 .getInt("packets");

Подробности API здесь: http://www.json.org/javadoc/org/json/JSONObject.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...