0

目前,我的 iPhone 应用程序中有一个 URL,其中包含我必须解析的 JSON 对象。

我能够获取 JSON 对象,将对象转换为 NSString,现在问题是解析对象/NSString 对象。

我目前正在使用 SBJSON。

如何使用 SBJSON 的框架遍历 JSON 对象的关键元素?

{
   "status":"SUCCESS",
   "fields":[
      {
         "type":"instant",
         "field":"GenerationPower",
         "label":"now",

JSON 对象比这些键和关键元素大得多,但是一旦解决了这个问题,我相信 JSON 对象的其余部分会很容易,因为我会有参考。

谢谢 Stackoverflow!

编辑: 这里有一些代码来澄清我的问题。

+ (NSString *) pullingInfo
{
    NSURL *solarWebURL = [NSURL URLWithString:myurl];

    if (solarWebURL)
    {
        NSLog(@"Calling: %@", solarWebURL);

        NSData *jsonData = [NSData dataWithContentsOfURL:solarWebURL];

        NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

        return jsonString;
    }

    NSString* errorMessage = @"Error reading URL";
    return errorMessage;
}

+ (NSDictionary *) jsonDictionaryObject
{
    NSDictionary * jsonDictionary = [[NSDictionary alloc] init];

    NSString * monroeString = [MonroeParser pullingInfo];


    return jsonDictionary;
}

所以正如我之前所说,我已经将 JSON 对象加载到一个 NSString 对象“jsonString”中。现在我想开始解析字符串。

我想我什至可能不需要使用 JSON 的框架进行解析,我可能只需使用 Apple 提供的 NSString 约定来解析 NSString。

有任何想法吗?但也许这不是有效的......

4

1 回答 1

1

既然您正在使用 SBJSON,为什么还要将 NSData 转换为 NSString?您可以使用-objectWithDataSBJSONParser 的方法将 NSData 直接读入 NSDictionary。

http://sbjson.org/api/3.2/Classes/SBJsonParser.html#//api/name/objectWithData

让 pullInfo 返回一个 id。在您调用函数时,检查 id 是否为 NSDictionary 或 NSArray 类型并进行相应解析。

于 2013-05-27T03:08:06.690 回答