У меня есть некоторый код Python для Google App Engine, который отвечает строкой {"sample_list": [{"message": "Hello, world.", "name": "Human"}]}
Я использую эту JSON-инфраструктуру, разработанную sbrautaset для преобразования строки в объект, который я могу использовать (NSDictionary inэтот случай).Я следую учебнику здесь , чтобы использовать фреймворк.
Моя проблема в том, что я получаю нулевое значение для [jsonParser objectWithString:jsonString error:NULL]
, где jsonString {"sample_list": [{"message": "Hello, world.", "name": "Human"}]}
, а jsonParser является экземпляром SBJSON
из фреймворка.
Я предполагаю, что синтаксический анализатор не распознает строку как формат JSON.Любое понимание будет оценено, поскольку я совершенно новичок в JSON.
Спасибо!
ОБНОВЛЕНИЕ: Код Python на стороне сервера
outer_dict = {}
middle_list = []
inner_dict = {}
inner_dict["name"] = "Human"
inner_dict["message"] = "Hello, world."
middle_list.append(inner_dict)
outer_dict["sample_list"] = middle_list
json_message = simplejson.dumps(outer_dict)
self.response.out.write(json_message)
Код Objective-C на стороне клиента
NSURL *url = [NSURL URLWithString:@"http://theurl"];
NSString *jsonString = [self stringWithUrl:url];
NSLog(@"%@", jsonString);
id myObj = [jsonString JSONValue];
NSLog(@"%@", myObj);
stringWithUrl
- (NSString *) stringWithUrl:(NSURL *)url {
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:30];
NSData *urlData;
NSURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
}