Как JSON запрос конвертировать в родной объект или список? - PullRequest
0 голосов
/ 27 декабря 2011
{
"id": "1",
"result": [
{
"Name": "John",
"Statu": "Online"
},
{
"Name": "Alex",
"Statu": "Online"
},
{
"Name": "Diaz",
"Statu": "Offline"
}
]
}

Как извлечь каждый JSON-объект "car" и поместить его в собственный объект? Я пробовал несколько способов, но я не могу этого сделать.

    NSString *responseString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

       NSString *responseDict = [responseString JSONValue]; 

       NSArray *objects = [NSArray arrayWithObjects:[responseDict valueForKeyPath:@"result.Name"],[responseDict valueForKeyPath:@"result.Statu"],nil];
       NSLog(@"objects Array: %@",objects);



     **==> NSLOG gives:
                      (
                        (
                        "John",
                        "Alex",
                        "Diaz"
                        ),
                        (
                        "Online",
                        "Online",
                        "Offline"
                        )
                      )



    NSArray *resultsArray = [responseString JSONValue];

     for (NSDictionary *personDict in resultsArray) 
        {

       NSLog(@"ihaleAdi =: %@",[carDict valueForKey:@"result.ihaleAdi"]);

       NSLog(@"ihaleDurum =: %@",[carDict valueForKey:@"result.Statu"]);

       }

Но это тоже ошибка, я хочу просто показать их, но я не могу этого сделать, может кто-нибудь помочь мне, пожалуйста? спасибо за чтение

1 Ответ

1 голос
/ 27 декабря 2011

Используйте массив для захвата responseString:

NSString *responseString = [request responseString];
NSArray *array = [responseString JSONValue];

Затем, когда вам нужен отдельный элемент из этого массива, используйте словарь:

// 0 is the index of the array you need
NSDictionary *itemDictionary = (NSDictionary *)[array objectAtIndex:0];

Учитывая JSON responseString, которое выглядит какthis:

[{"UniqueID": 111111, "DeviceName": "DeviceName1", "Location": "Device1Loc", "Description": "Device1Desc"}, {"UniqueID": 22222, "DeviceName":" DeviceName2 "," Location ":" Device2Loc "," Description ":" Device2Desc "}]

Вы получите массив, который выглядит следующим образом:

myArray = (
        {
        Description = "Device1Desc";
        DeviceName = "DeviceName1";
        Location = "Device1Loc";
        UniqueID = 111111;
    },
        {
        Description = "Device2Desc";
        DeviceName = "DeviceName2";
        Location = "Device2Loc";
        UniqueID = 222222;
    }
)

И словарь с индексом 0, который выглядит следующим образом:

myDictionary = {
    Description = "Device1Desc";
    DeviceName = "DeviceName1";
    Location = "Device1Loc";
    UniqueID = 111111;
}

Извините за путаницу и неправильно созданный объект ранее.Я все еще относительный новичок, который узнал кое-что сегодня.

...