2013-05-12 34 views
-4

我試圖解析JSON從以下鏈接返回返回c:解析JSON當多個陣列的目標C

NSDictionary *user = [result JSON]; 
NSLog(@"NSDictionary returned: %@",user); 
NSArray* arrayOfReturnedItems = [user objectForKey:@"message"]; 
NSLog(@"Array returned: %@",[arrayOfReturnedItems objectAtIndex:0]); 

NSDictionary成功存儲JSON值,但e以後會發生錯誤。我對Obj-C和JSON非常陌生,所以我非常感謝他們的幫助。我檢查了jsonlint.com,它說這是有效的,但我相信我得到的錯誤的原因是,我有效地拉回兩個數組(從該URL),但沒有正確解析它。我有權訪問服務於JSON的服務器,因此我可能需要在那裏進行更改?

花了一半的時間搜索本網站尋求幫助之前,我繼續前進,問如此希望我會得到一個結果!

由於

從xcode的

錯誤:

2013年5月12日23:37:20.096 SecureComms [27240:1307] - [__ NSArrayM objectForKey:]:無法識別的選擇發送到實例0x8957e30 2013-05 -12 23:37:20.097 SecureComms [27240:1307] *因未捕獲異常'NSInvalidArgumentException'而終止應用程序,原因:' - [__ NSArrayM objectForKey:]:無法識別的選擇器發送到實例0x8957e30' *第一次拋出調用堆棧: (0x1c98012 0x10d5e7e 0x1d234bd 0x1c87bbc 0x1c8794e 0x47dc 0x4399 0xbd8cf8 0xb4075a 0xb0e453 0xb0e164 0xb9aa31 0x49fc53f 0x4a0e014 0x49ff2e8 0x49ff450 0x91758e72 0x91740d2a) 的libC++ abi.dylib:終止叫做拋出異常

+0

「稍後發生錯誤」 - 這不會繼續下去。創建一個演示錯誤的測試用例 - 一個大部分自包含的代碼片段,導致錯誤的輸出,並指出輸出是否正確。 – millimoose 2013-05-12 22:34:16

+0

和義務資源:http://sscce.org/,http://tinyurl.com/so-hints – millimoose 2013-05-12 22:35:12

+0

道歉@millimoose。現在添加了錯誤。 – CTV 2013-05-12 22:37:58

回答

2

這條線:

NSDictionary *user = [result JSON]; 

應該是:

NSArray *users = [result JSON]; 

然後,你需要處理數組中的每個(或其中一個)字典。

接下來,您試圖提取的message只是一個字符串(NSString),但是您的代碼表示其數組,因此您在那裏也會遇到問題。

您可能會發現它有用的日誌類項目,以檢查你的想法的事情是:

NSLog(@"Class or user:%@", NSStringFromClass(user)); 
+0

謝謝,現在就試試這個。 – CTV 2013-05-12 22:43:13

0

見這裏尋求幫助的JSON parsing in iOS

NSArray* json = [NSJSONSerialization 
     JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://icansolvecouk1.fatcow.com/prco303/loginjson.php?nickname=maggie&password=maggie"]]]; 
1

一個基本的東西瞭解JSON語法:

  • 「[」指的是ar射線所以我們獲取結果到的NSArray

    的NSArray * ARR = [結果JSON];

  • 「{」 是指對象所以我們必須將結果取爲的NSDictionary

    的NSDictionary *字典= [結果JSON];

+2

如果有人不知道這一點,那麼我認爲他們從未在他們的生活中看過JSON ... – borrrden 2013-05-13 01:15:40

+1

@borrrden他說他是Obj-C的新手,所以我認爲這可能是一個有用的提示;) – hellboy1738 2013-05-13 09:40:55

+0

當然,它有助於列出相應的類,但「瞭解JSON語法的基本知識」是OP應該已經知道的。對我而言,不知道這一點顯示出對理解問題的明顯缺乏努力。 – borrrden 2013-05-13 09:44:52