2013-02-15 24 views
3

我在Android中很容易做到這一點,但是我很少在iOs中做到這一點。 我的JSON是這樣的:我如何解析數組JSON中的objective-c

[{"name":"qwe","whatever1":"asd","whatever2":"zxc"}, 
{"name":"fgh","whatever1":"asd","whatever2":"zxc"}] 

如果我做的:

NSData *jsonData = [data dataUsingEncoding:NSUTF32BigEndianStringEncoding]; 

rows = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: &error]; 

行我可以訪問與?

NSString *name = [[rows objectAtIndex:0] [objectForKey:@s"name"]]; 

或者我該怎麼做?謝謝。

FINALLYNSString *name = [[rows objectAtIndex:0] objectForKey:@"name"]]; WORKS! :d

+0

當你嘗試過時發生了什麼? – vikingosegundo 2013-02-15 10:27:07

回答

3

我認爲,將工作,但是你想:

NSString *name = [[rows objectAtIndex:0] objectForKey:@"name"]; 

(丟棄多餘的方括號,並使用@"name"爲字符串文本)。

但是,輸入的JSON真的是UTF-32格式嗎?

+0

好,非常感謝。 – 2013-02-15 10:30:03

2
NSMutableArray *row= [NSJSONSerialization JSONObjectWithData: jsonData options:  NSJSONReadingMutableContainers error: &error]; 
     for (int i=0; i<[row count]; i++) { 
      NSMutableDictionary *dict=[row objectAtIndex:i];; 
      NSString * name=[dict valueForKey:@"name"]; 
      NSLog(@"%@",name); 
     } 
    } 
+0

我很確定,'row'won't是一個NSMutableArray。 – vikingosegundo 2013-02-15 10:30:41

+0

我會檢查代碼謝謝! – 2013-02-15 10:30:59

+0

@Kalpesh:謝謝。有效。 – Pawan 2017-04-17 08:11:50

2

假設NSJSONSerialization操作成功,只需:

NSString *name = rows[0][@"name"]; 

NSUTF32BigEndianStringEncoding是可疑,JSON數據是更通常NSUTF8StringEncoding

+0

我會改變它。 – 2013-02-15 11:08:20