2013-09-22 35 views
0

JSON很可怕。我不明白一件事。我的JSON響應如下所示:從JSON響應中提取一個屬性

{ 
    ID = 1; 
    EDate = "<null>"; 
    SelectedDay = "/Date(-62135596800000)/"; 
    End = "14.09.2013 15:00:00"; 
    Start = "14.09.2013 07:00:00"; 
    SDate = "<null>"; 
}, 
    { 
    ID = 1; 
    EDate = "<null>"; 
    SelectedDay = "/Date(-62135596800000)/"; 
    End = "14.09.2013 16:00:00"; 
    Start = "14.09.2013 07:00:00"; 
    SDate = "<null>"; 
}, 

在NSData和NSDictionary中。我如何循環低谷,例如,每個對象的「End」屬性,並將它們添加到數組中?

編輯:

我從這個代碼登錄:

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:result.data options:kNilOptions error:&error]; 

    NSLog(@"Response: %@",dict); 

和完整的日誌是: enter image description here

+1

你的json的完整結構是什麼?所有這些字典存儲在一個數組中嗎? –

+0

@NishantTyagi這是我在NSData和NSDictionary中記錄響應的結果。像這樣。一堆這些對象 –

+1

是的,最有可能的外層是一個數組(其複製/粘貼時你消除的「()」括號)。複製ENTIRE NSLog結果(或至少是第一部分,它告訴我們在什麼樣的對象中我們有多深)。 –

回答

1

這個JSON似乎是一個字典數組。試着用:

NSMutableArray *endValuesArray = [[NSMutableArray alloc] init]; 

for (NSDictionary *dictionary in JSONArray) { 

    [endValuesArray addObject:[dictionary valueForKey:@"End"]]; 

} 

哪裏JSONArray是NSJSONSerialization後得到的數組。

-1
  • 使JSON對象的一個​​NSArray。
  • 使用FOR循環直到數組的計數爲每個數組對象創建一個NSDictionary
  • 使用'objectForKey:@「End''來提取End對象。 (在for循環)
+0

當你已經有一個「數組」的時候,爲什麼要「製作」一個數組? –

+0

但他不需要將JSON數據分配給數組以開始?他可能已經完成了它,但我想我會包括完整性。 –

+0

他需要將JSON數據(大概是數組最外層)分配給NSArray類型的指針,但是JSON轉換會「製作」數組。 –

1

如果你真的只需要值的數組在每個字典中的一個鍵,那麼你可以使用KVC:

NSArray *endValues = [resultsArray valueForKey:@"End"]; 

- 這是假設你做有一系列的字典,你的粘貼日誌並不能顯示完整的故事。

如果你需要多個鍵/值出字典,那麼你最好迭代內容並挑選每個項目。有許多迭代方法,您可以使用純循環或塊查看。

1

使用此:

NSMutableArray *endDatesArray = [NSMutableArray new]; // Here this array will store all end dates 
for (int i =0; i < [YOUR_JSONARRAY count]; i++) // Here YOUR_JSONARRAY is the response array you are getting 
{ 
    NSMutableDictionary *dict= [YOUR_JSONARRAY objectAtIndex:i]; 
    [endDatesArray addObject:[dict objectForKey:@"End"]]; 

} 

希望它可以幫助你。

+0

你和rauru的回答對我有幫助,你可以用for-in改進。不管怎麼說,還是要謝謝你。 –