有人可以幫我解決問題,我試圖用NSserialization來解析Deet。我試圖解析下一個JSON:解析屬性NSserialization
{
thing: "10",
Product: [
{
@atri: {
Name: "Single"
},
Price: [
"21,40",
"27,50"
]
},
{
@atri: {
Name: "Day"
},
Price: [
"4,80",
"3,80",
"333,20",
"436,60",
"5,533553"
]
}
]
}
我試圖解析與此代碼 '價格':
Deeta *NSApiDeet = [Deeta DeetWithContentsOfURL:[NSURL URLWithString:Planner]];
NSError *parseError = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithDeet:NSApiDeet options:NSJSONReadingAllowFragments error:&parseError];
NSMutableArray *DeetNS = [[NSMutableArray alloc] init];
if ([jsonObject respondsToSelector:@selector(objectForKey:)]) {
for (NSDictionary *Deet in [jsonObject objectForKey:@"Product"]) {
NSDictionary *scrubbedDeet = [NSDictionary dictionaryWithObjectsAndKeys:
[Deet objectForKey:@"Price"], @"Price",
nil];
[self setTableDeet:[jsonObject objectForKey:@"Product"]];
[DeetNS addObject:scrubbedDeet];
在NSLog的我收到:
1: (
"2,40",
"1,90",
"1,40",
"4,10",
"3,30",
"2,50"
)
2012-08-10 14:26:10.242 [19716:707] 1: (
"4,80",
"3,80",
"2,80",
"8,20",
"6,60",
"5,00"
)
現在我試圖解析表格中的每個價格我試過類似:
NSDictionary *Deet = [tableDeet objectAtIndex:[indexPath row]];
cell.Price.text = [Deet objectForKey:@"Price"];
但它崩潰了;
-[__NSCFArray isEqualToString:]: unrecognized selector sent to instance 0x2b8fc0
2012-08-10 14:28:40.835 Untitled[19734:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray isEqualToString:]: unrecognized selector sent to instance 0x2b8fc0'
*** First throw call stack:
(0x36f2a88f 0x33341259 0x36f2da9b 0x36f2c915 0x36e87650 0x350ff3f9 0xfdc89 0x3515befb 0x3515afd9 0x3515a763 0x350fef37 0x36e891fb 0x3259caa5 0x3259c6bd 0x325a0843 0x325a057f 0x325984b9 0x36efeb1b 0x36efcd57 0x36efd0b1 0x36e804a5 0x36e8036d 0x35047439 0x35129cd5 0xfa67d 0xfa618)
terminate called throwing an exception(lldb)
對不起Frenck,真的很難理解你想要什麼,我可以看到你做了什麼,但是你期望的輸出是什麼?這個錯誤非常明顯,當你需要一個字符串時,你有一個數組,但是你需要解釋一下,基於你放在那裏的json,你想要做什麼,也許存在一個簡單的方法來做到這一點。您也必須使用以較低駱駝大小寫命名的變量。 – ggrana 2012-08-10 14:47:59