ios - 在 Objective-C 中解析 JSON 的最漂亮方法?

标签 ios objective-c json macos

我正在尝试从 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"
    }
}

现在我想在 lastdata 处访问 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/

相关文章:

iphone - Xcode,仪器 : How to find an ever-increasingly leaking object?

ios - 从 NSDictionary Swift 设置枚举

python - python 2.7 中来自 googlefinance 的 HTTP 错误 404

java - Android 代码发布到服务器时出错

iphone - 在 iPhone 中使用 Phonegap 拨号

android - WCF 对象数组参数的 JSON 请求

iphone - 在iphone中获取屏幕分辨率

ios - 将 UISlider 拇指重置为初始位置

animationControllerForPresentedController 和 animateTransition 之间的 iOS 未知延迟

ios - objective-C : How to control volume of multiple audio players in DiracLE