Я пытаюсь разобрать некоторые JSON из API, но у меня есть «проблема» подпараметров JSON. Мои методы делать это, похоже, могут быть красивее.Самый удобный способ разбора JSON в Objective-C?
Я пытаюсь разобрать из http://data.mtgox.com/api/2/BTCUSD/money/ticker_fast?pretty
и я получаю
{
"result": "success",
"data": {
"last_local": {
"value": "785.00000",
"value_int": "78500000",
"display": "$785.00",
"display_short": "$785.00",
"currency": "USD"
},
"last": {
"value": "785.00000",
"value_int": "78500000",
"display": "$785.00",
"display_short": "$785.00",
"currency": "USD"
},
"last_orig": {
"value": "785.00000",
"value_int": "78500000",
"display": "$785.00",
"display_short": "$785.00",
"currency": "USD"
},
"last_all": {
"value": "785.00000",
"value_int": "78500000",
"display": "$785.00",
"display_short": "$785.00",
"currency": "USD"
},
"buy": {
"value": "785.00000",
"value_int": "78500000",
"display": "$785.00",
"display_short": "$785.00",
"currency": "USD"
},
"sell": {
"value": "785.50000",
"value_int": "78550000",
"display": "$785.50",
"display_short": "$785.50",
"currency": "USD"
},
"now": "1386421846023718"
}
}
Теперь я хочу, чтобы получить доступ к value
в last
на data
. Мой способ сделать это гнездится кучу objectForKey: строки - такие, как
[[[[[self getInformationFrom:mtgox] objectForKey:@"data"] objectForKey:@"last"] objectForKey:@"value"] floatValue];
В основном то, что getInformationFrom:mtgox
делает вернуть NSDictionary с NSJSONSerialization.
Есть ли лучший способ получить значение этих данных JSON?
Это определенно красивее и читабельнее. Благодарю. – Filuren
Существует также интерфейс, который позволяет вам указать список разделенных точками, но он хорошо скрыт в документации. –
Да, это значениеForKeyPath в протоколе NSKeyValueCoding. –