I would save my test json as separate files in the app. The advantage of this is that you can just copy & paste responses from a web service and read them easily without having to convert them to NSDictionaries or escaped strings.
I've correctly formatted your JSON (using jsonlint) and saved it to a file named testData.json
in the app bundle.
{"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"
}]
}
Then in order to parse this file in your app you can simply load the file from the bundle directory.
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"testdata" ofType:@"json"];
NSData *jsonData = [[NSData alloc] initWithContentsOfFile:filePath];
NSError *error = nil;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSLog(@"%@", jsonDict);
It would now be pretty easy to extend this to load any number of responses and essentially have a local web service. It then wouldn't be much more work to adapt this to load responses from a remote server.