2
我有一個REST服務,可以產生JSON結果,並已通過多種不同的驗證工具等驗證。我對iOS開發相當陌生,但通常不是開發。我在從服務響應中提取對象/響應/任何內容時遇到了一些問題。儘管我盡了最大的努力,但我一直沒有成功。JSON響應處理iOS 6
從服務的典型響應:
[
{
"prcID": 547,
"prcName": "walls",
"prcDescription": "hi-lo",
"1prc": 270,
"2prc": 282,
"3prc": 312,
"4prc": 348,
"5prc": 354,
"6prc": 360,
"7prc": 366,
"8prc": 372,
"9prc": 384,
"10prc": 432
},
{
"prcID": 548,
"prcName": "doors",
"prcDescription": "hi-lo",
"1prc": 270,
"2prc": 282,
"3prc": 312,
"4prc": 348,
"5prc": 354,
"6prc": 360,
"7prc": 366,
"8prc": 372,
"9prc": 384,
"10prc": 432
}
]
的代碼是由我的示例代碼和嘗試的混合,使事情的工作:
- (void)fetchedData:(NSData *)responseData {
//parse out the json data
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData //1
options:kNilOptions
error:&error];
NSMutableArray *myarray = [json.description mutableCopy];
outPutText.text = [myarray mutableCopy];
}
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData* data = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"someserviceurl"]];
[self performSelectorOnMainThread:@selector(fetchedData:)
withObject:data waitUntilDone:YES];
});
}
此代碼讓我至少看到了但是每次我嘗試使用ObjectAtIndex或迭代使用AllKeys鑽入'json'NSDictionary時,我會遇到類似的錯誤,與我在嘗試下面的代碼時一樣:
NSArray* somearray = [json objectForKey:@"prcName"];
NSLog(@"PriceName: %@", somearray);
的錯誤是:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x71944b0'
任何幫助表示讚賞。
我意識到我的問題和代碼可能會帶有明顯的疏漏 - 我已經嘗試了幾個小時來搜索並推動這個過程,但是我遇到了一個障礙,我似乎無法推開。我感謝任何見解或建議,甚至一部分問題。謝謝。 – scodav