JSON解析错误(空白响应)

时间:2014-10-27 02:04:35

标签: objective-c json

这是我的代码,当我运行它时,我得到:" 2014-10-26 19:02:09.153 App [27372:1281902]价格:( )"

我想知道为什么,没有任何错误被传递,它真的让我困惑。

(我在" omc_usd_price&#34获得空白回复;)

@try
{
    NSURL *url = [NSURL URLWithString:@"https://omnicha.in/api?method=getinfo"];
    NSData *data=[NSData dataWithContentsOfURL:url];
    NSError *error;

    NSMutableDictionary *JSONStuff= [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];

    NSLog(@"%@",JSONStuff);

    NSMutableArray * OMCArray = [[NSMutableArray alloc]init];

    NSArray * responseArr = JSONStuff[@"omc_usd_price"];

    for(NSDictionary * dict in responseArr)
    {
        [OMCArray addObject:[dict valueForKey:@"omc_usd_price"]];

    }


    NSLog(@"Price: %@ test", OMCArray);   // Here you get the Referance data
}
@catch (NSException *exception) {
    NSLog(@"%@", exception);

}
@finally {

}

编辑:

试过这个,我也不认为我这样做了!

NSMutableArray * OMCArray = [[NSMutableArray alloc]init];
    NSMutableArray * OMCArray2 = [[NSMutableArray alloc]init];

    NSArray * responseArr = JSONStuff[@"response"];
    NSArray * responseArr2 = JSONStuff[@"omc_usd_price"];

    for(NSDictionary * dict in responseArr)
    {
        [OMCArray addObject:[dict valueForKey:@"response"]];

        for(NSDictionary * dict2 in responseArr2)
        {
            [OMCArray addObject:[dict2 valueForKey:@"omc_usd_price"]];
        }
    }


    NSLog(@"Price: %@ test", OMCArray2);   // Here you get the Referance data

2 个答案:

答案 0 :(得分:1)

这是JSONStuff字典:

{
    "error":false,
    "response":{
        "block_count":96136,
        "difficulty":12.18364177,
        "netmhps":234.652099,
        "seconds_since_block":694,
        "avg_block_time":196.533,
        "total_mined_omc":6426691.6,
        "omc_btc_price":7.0e-6,
        "omc_usd_price":0.0025,
        "market_cap":15833.5909
    }
}

如您所见,字典中没有名为" omc_usd_price"的条目。那里的 是一个以字典名称"响应"的名字的条目,但是你并没有要求这样做。

答案 1 :(得分:0)

如果您想获得omc_usd_price,如代码中所述,则需要解析2个词典。 您必须首先使用键响应解析字典,这将为您提供一个新字典。

然后在这个新字典中,你必须解析/寻找密钥omc_usd_price。

另外,你没有得到一个数组,而是一个double或float,甚至是一个字符串。