1

我在以下陈述中遇到问题。

 NSArray *feedsData = [strFeedsResponse JSONValue];
4

6 回答 6

2

我认为strFeedsResponseNSString. 没有像JSONValue中这样的方法NSString。您需要 NSString类别并在那里添加JSONValue方法。

您可以使用例如SBJsonhttps://github.com/stig/json-framework/,其中包含 NSString+SBJson.h 标头,其中添加了JSONValueNSString 的方法。

此标头必须在要使用该JSONValue方法的源文件中导入:

#import NSString+SBJSON.h

有关类别的更多信息,例如:http: //macdevelopertips.com/objective-c/objective-c-categories.html

于 2012-04-30T07:37:10.310 回答
1

正在发生两件事之一:

  1. strFeedsResponse 实际上不是 NSString 的实例。可能它为 null 或者它已使用不正确的值启动。您可以在代码中添加断点以检查存储在 strFeedsResponse 中的值,然后再对其调用 JSONValue。

  2. 您尚未将您正在使用的 JSON 框架正确导入到您的课程中。您需要将 JSON 标头添加到您的类中。

于 2012-04-30T07:41:10.227 回答
1

希望这有助于未来的搜索者解决这个错误......

错误的原因是当前版本的 SBJson 似乎不包含早期发布者提到的 NSString 类别“NSString+SBJSON.h”。因此,您可以轻松编写自己的代码,或者直接使用 SBJsonParser 类(“address”只是一个 NSString,其中包含“24 Elm Street, Yourtown, New Mexico”):

NSString     *esc_addr       = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString     *req            = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
NSString     *response       = [NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL];
SBJsonParser *parser         = [[SBJsonParser alloc] init];
NSDictionary *googleResponse = [parser objectWithString:response];

干杯!

于 2013-10-10T15:49:59.900 回答
0
 NSArray *feedsData = [[strFeedsResponse JSONValue] mutableCopy];

使用这条线,它会对你有用..

于 2012-04-30T07:22:13.980 回答
0

这个错误一般是在找不到方法的时候出现的。这里是因为没有找到JSONValue函数。
请确保在调用此函数的位置包含 json 头文件。

于 2012-04-30T07:36:14.240 回答
0

如果您使用的是网络服务,请提供相应的 URL。

试试这个方法...

NSArray* latestentry = (NSDictionary*)[responseString JSONValue];
于 2012-04-30T07:45:18.517 回答