Я хочу настроить статические фиктивные данные в формате JSON для обработки моим приложением. Это чисто на стороне клиента; Я не хочу получать что-либо из сети.
Все вопросы и ответы, которые я видел до сих пор, имеют переменные NSData*, в которых хранится то, что извлекается из сетевых вызовов, и [JSONSerialization JSONObjectWithData: ...], обычно воздействующие на данные, которые не были созданы вручную.
Вот пример того, что я пробовал в xcode.
NSString* jsonData = @" \"things\": [{ \
\"id\": \"someIdentifier12345\", \
\"name\": \"Danny\" \
\"questions\": [ \
{ \
\"id\": \"questionId1\", \
\"name\": \"Creating dummy JSON data by hand.\" \
}, \
{ \
\"id\": \"questionId2\", \
\"name\": \"Why no workie?\"
} \
], \
\"websiteWithCoolPeople\": \"http://stackoverflow.com\", \
}]}";
NSError *error;
NSDictionary *parsedJsonData = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
Подобные попытки (и попытки что-то изменить, например переключение NSString* на NSData* из этой строки JSON) привели к нулевым данным parsedJsonData или исключениям при попытке создать эту переменную данных JSON или при попытке ее анализа.
Как создать фиктивные данные JSON в собственном коде, чтобы их можно было анализировать с помощью обычных классов Foundation, которые анализируют данные JSON?
{
в начало перед"things"
. После этого возьмите свою строку и используйте метод[jsonData dataUsingEncoding:NSUTF8StringEncoding]
, так какNSJSONSerialization
принимает только данные, а не строку :) - person anon_dev1234   schedule 27.03.2013