我正在尝试从 API 解析一些 JSON,但我在解析 JSON 的子元素时遇到“麻烦”。我这样做的方法似乎可以更漂亮。
我正在尝试从 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"
}
}
现在我想在 last
的 data
处访问 value
。我这样做的方法是嵌套一堆 objectForKey:string——例如
[[[[[self getInformationFrom:mtgox] objectForKey:@"data"] objectForKey:@"last"] objectForKey:@"value"] floatValue];
基本上 getInformationFrom:mtgox
所做的是返回一个带有 NSJSONSerialization 的 NSDictionary。
是否有更好的方法来获取此 JSON 数据的值?
最佳答案
您可以使用 dictionary literals :
[[self getInformationFrom:mtgox][@"data"][@"last"][@"value"] floatValue];
或者您可以使用 KVC :
[[[self getInformationFrom:mtgox] valueForKeyPath:@"data.last.value"] floatValue];
关于ios - 在 Objective-C 中解析 JSON 的最漂亮方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442400/