2014-01-29 2 views
0

У меня есть два вида json-форматов, которые обрабатываются.iOS JSON Parsing

Данные, которые не дают никаких проблем, и когда я получаю ключ «orderListView», массив получает сгенерированный штраф. В этом случае количество массивов равно 2.

{ 
    "orderListView": [ 
    { 

     "status": "AC", 
     "totalRecords": "5", 

    }, 
    { 

     "status": "SH", 
     "totalRecords": "5", 

     } 
    ] 
} 

Там есть квадратная скобка отсутствует в данных ниже, и это тоже становится разобран на два объекта, где, как это должно было быть один объект похож на выше JSON. Как я могу справиться с этой проблемой?

{ 
"orderListView": { 

    "status": "AC", 
    "totalRecords": "1", 
    } 
} 

EDIT: Пробовал решение

if ([[appDelegate.orderListJson objectForKey:@"orderListView"] isKindOfClass:[NSMutableArray class]]) { 
    orderMainArray = [appDelegate.orderListJson objectForKey:@"orderListView"]; 
} 

else 
{ 
     NSArray *array = [NSArray arrayWithObject:[appDelegate.orderListJson objectForKey:@"orderListView"]]; 
    orderMainArray = [array copy]; 

} 
+0

которые генерируют этот JSON? –

+0

коллега-коллега –

+0

Почему вы хотите его в массиве? Вы должны получить его в словаре. – Ajay

ответ

1

Вы не 'решительность', это, вы имеете дело с ним или получить источник JSON изменилось.

Чтобы справиться с этим, проверьте тип класса объекта, который вы возвращаете, когда вы запрашиваете orderListView. Он будет либо NSArray, либо NSDictionary, поэтому вы можете проверить с помощью isKindOfClass:, чтобы решить, что делать.

+0

Это хорошее предложение .. Один я знаю, есть ли его массив или nsdictionary .. как создать массив, сделав все эти значения пары ключей одним объектом? –

+0

Ключ-пары уже будут в одном объекте - словаре. Вы создаете массив с '@ [theValueITested]' или [NSArray arrayWithObject:] ' – Wain

+0

Но это не сделает все его одним объектом в массиве ... В первом случае у меня есть 2 объекта в массиве. Во втором случае я хочу, чтобы это был один объект в массиве ... –

0

проблема @ ваша сторона коллеги.

json должен поддерживать один стандарт. либо должны заполняться массивом, либо объектом. вышеупомянутые два случая json идут двумя разными способами.

@ На вашем конце вы можете управлять обработкой исключений, но это рискованно.

+2

Не используйте обработку исключений для логической обработки. Это очень плохая практика. Проверьте данные и действуйте соответствующим образом. – Wain