2013-04-26 31 views
18

Tôi đã lưu json kết quả phân tích trong một dictionary mà trông giống như:có được giá trị của khóa nào trong NSDictionary

{ 
"statusCode":"200", 
"body":[ 
    { 
    "status":"success", 
    "remarks":null 
    } 
], 

"data":[ 
    "abcd":[ 
     { 
      "category":"a", 
      "title":"b", 
      "id":"24" 
     }, 
     { 
      "category":"c", 
      "title":"crd", 
      "id":"65" 
     }, 
     { 
      "category":"ds", 
      "title":"sd", 
      "id":"18" 
     } 

    ] 
    }, 
    { 
    "efgh":[ 
     { 
      "category":"ds", 
      "title":"sd", 
      "id":"18" 
     }, 
     { 
      "category":"sd", 
      "title":"sd", 
      "id":"1" 
     } 

          ] 
    }, 
    { 
    "ijkl":[ 
     { 
      "category":"ds", 
      "title":"sd", 
      "id":"18" 
     }, 
     { 
      "category":"sd", 
      "title":"sd", 
      "id":"1" 
     } 

    ] 
    } 
] 
} 

Các dữ liệu cho khóa @ "dữ liệu" có thể được lưu vào một mảng bằng cách sử dụng

NSMutableArray *getdata=[[NSMutableArray alloc]init]; 
getcat=[results objectForKey:@"data"]; 

Bây giờ tôi nên làm gì cho số values(category, title, id) bên trong chỉ mục đầu tiên tức là "abcd".

Nếu có bất kỳ kiến ​​thức nào, hãy xem xét điều đó.

Cảm ơn tất cả.

Trả lời

44

Tiếp theo sẽ cung cấp cho bạn các đối tượng mong muốn

NSDictionary *dict=[results valueForKeyPath:@"data.abcd"][0]; 

Đối với cá nhân:

NSString *categoryString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"Category"]; 
NSString *idString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"id"]; 
NSString *titleString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"title"]; 

Ngoài ra,

NSString *categoryString=dict[@"Category"]; 
NSString *idString=dict[@"id"]; 
NSString *titleString=dict[@"title"]; 
+0

Tôi không thể nhận được giá trị bên trong từ điển tức là danh mục, id, tiêu đề. –

+0

nslog dict, như được hiển thị trong câu trả lời của tôi, và cho biết những gì được in. –

+0

Tôi nhận các giá trị khóa bên trong bằng NSString * cat = [dict valueForKeyPath: @ "id"] [0]; Nó có nghĩa là để có được tất cả các id cho một phím cụ thể ví dụ tất cả các id dưới "abcd" tôi phải sử dụng cho vòng lặp. –

2

Kiểm tra như thế này:

NSString *value=[[[getcate valueForKey:@"abcd"] objectAtIndex:0] valueForKey:@"category"]; 
0

Đó là một mảng để sử dụng objectAtIndex: (tức [getcat objectAtIndex:0] hoặc getcat[0])

+0

Có, tôi làm điều này đã .. NSMutableArray * firstarray = [getcat objectAtIndex: 0]; "Abcd": [ { "thể loại": "a", "title": "b", "id": "24" }, { "thể loại": "c", "title ":" CRD", "id": "65" }, { "thể loại": "ds", "title": "sd", "id": "18" } ] Nhưng bây giờ làm thế nào để có được giá trị bên trong danh mục abcd tức là, tiêu đề, id –

+0

Đó là một từ điển khác. Tôi không hiểu tại sao điều này lại khiến nhiều người gặp rắc rối đến vậy. Bạn đã làm chính xác điều tương tự trong dòng này -> 'getcat = [results objectForKey: @" data "];' do đó, chỉ cần làm điều đó một lần nữa. JSON không phải là khoa học tên lửa. Bạn chỉ có thể nhận được khoảng 5 hoặc 6 loại khác nhau và chỉ ** hai ** loại bộ sưu tập. Vì vậy, các bộ sưu tập là một trong hai mảng (nhận theo số) hoặc từ điển (nhận theo chuỗi). – borrrden

Các vấn đề liên quan