2012-03-20 180 views
0

可能重複:
Json Passing in iphone解析JSON。我有服務器響應

我的JSON解析是新。我有一個服務器響應如何獲取0索引的「設備名稱和ID」。

在此先感謝

{ 

    Successfully = 

    (

       { 

      0 =    { 

       DeviceName = Tommy; 

       DeviceTypeId = 1; 

       EMEI = xxxxxx; 

       GId = xxxxx; 

       Id = 105; 

       Pet = "<null>"; 

       PetImage = "352022008228784.jpg"; 

       ProtocolId = xxxx; 

       SimNo = xxxxx; 
      }; 

     } 
    ); 
} 
+0

我們在看什麼?這是一些簡單的字符串或數據收到或者這已經解析了嗎? – 2012-03-20 12:34:53

+0

顯然這是從一個NSLog – Alladinian 2012-03-20 12:38:02

回答

1
NSDictionary *myJsonResponse; // Let's assume that this is the response you provided 

NSString *deviceName = [[[myJsonResponse valueForKey:@"Successfully"] objectAtIndex:0] valueForKeyPath:@"0.DeviceName"]; 

id theId = [[[myJsonResponse valueForKey:@"Successfully"] objectAtIndex:0] valueForKeyPath:@"0.Id"]; // I am using "id" type here since I don't know if this is an NSString or an NSNumber 
+0

謝謝你是對的我忘記了「成功」。再次感謝 – UserSOF 2012-03-20 12:51:02

+0

我有更多的一個索引,但當我使用.... NSDictionary * menu = [parsedJSON objectForKey:@「Successfully」]; NSLog(@「計數值是%d」,[菜單計數]); .....它打印1,但我想輸出2.根據服務器響應 – UserSOF 2012-03-20 14:39:26

+0

是的,這是正常的。在「成功」數組裏,你只有一個對象(一個字典),有多個鍵/值。試試這個:'NSDictionary * menu = [[parsedJSON objectForKey:@「Successfully」] objectAtIndex:0];'然後計算菜單對象。 – Alladinian 2012-03-20 14:45:36

0

使用的NSDictionary和方法valueForKey。

+0

我使用這個,但。 out put is null ...... NSDictionary * menu = [parsedJSON objectForKey:@「0」]; (@「PARESED JASON 0th index%@ VALUE」,[parsedJSON objectForKey:@「0」]); NSLog(@「菜單是%@」,菜單); – UserSOF 2012-03-20 12:26:30

+0

@GauravBOSS你忘記了「成功」數組,這也是你的字典中的一個關鍵。請參閱下面的答案。 – Alladinian 2012-03-20 12:40:30

0

假設這是完整的JSON響應,你需要創建從0指數,這應該是這個樣子

NSMutableDictionary *dictionary = [JSON objectForKey:@"0"]; 

其中JSON是,這是存儲在對象的名字的字典。然後,你應該能夠內剛剛起步的對象關鍵要即

NSString *deviceName = [dictionary objectForKey:@"DeviceName"]; 

無本進行了測試,只是從內存中完成,從而採取與一粒鹽訪問一切。