如何用未知密钥解析JSON?

时间:2013-07-17 07:40:14

标签: ios objective-c json cocoa-touch

我正在使用带AFNetworking的POST来接收和发送来自服务器的数据。在其中一个案例中,我正在获得下一个JSON:

{
    20 = "Some text";
    25 = "some other text";
}

JSON的内容未知,我只知道会有一个数字等于某些文本。 通常我使用valueForKey,但在上面我不知道密钥是什么。 如何将上述内容解析为分隔id和文本的任何数组?

由于

4 个答案:

答案 0 :(得分:4)

使用以下代码从字典中查找键列表,您可以使用键进行操作。

NSArray *keys = [yourdict allKeys];

答案 1 :(得分:1)

将其转换为如下字典:

NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:*yourJSONObject* options:NSJSONReadingMutableContainers error:nil];

然后使用其他人已经提到的方法获取密钥

[dataDictionary allKeys];

答案 2 :(得分:0)

我认为您所指的JSON是字典类型。

{
    20 : "Some text",
    25 : "some other text"
}

如果是这种情况,那么一旦它被转换为对象......

NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:yourJSONData options:0 error:nil];

然后你可以从中获取所有密钥......

NSArray *allTheKeys = [jsonObject allKeys];

然后,您可以迭代键数组以获取每个键值。

答案 3 :(得分:-1)

试试这个说你JSON数据是在JSONData变量

if([JSON isKindOfClass:[NSDictionary class]])
{
    NSDictionary * dictionaryFromJSON = (NSDictionary *)JSON;
    for(id key in [dict allKeys])
    {
        id obj = [dictionaryFromJSON objectForKey:key];
        // use this obj & key as you want.
    }
}