Я использую сенсорный JSON, который отлично сработал для меня. Мне удалось взять массив, поместить его в словарь, сериализовать его через touchJSON и отправить по http.
Теперь, с другой стороны, я получил данные и поместил их в словарь (я использую trend.json из twitter в качестве примера JSON).
Если я пытаюсь получить значение для трендов из объекта словаря, я получаю это:
2010-08-02 00:23:31.069 rateMyTaxi[30610:207] ANSWER: (
{
name = "Fried Chicken Flu";
url = "http://search.twitter.com/search?q=Fried+Chicken+Flu";
},
{
name = "Lisa Simpson";
url = "http://search.twitter.com/search?q=Lisa+Simpson";
},
{
name = "#breakuplines";
url = "http://search.twitter.com/search?q=%23breakuplines";
},
{
name = "#thingsuglypeopledo";
url = "http://search.twitter.com/search?q=%23thingsuglypeopledo";
},
{
name = "Inception";
url = "http://search.twitter.com/search?q=Inception";
},
{
name = "#sharkweek";
url = "http://search.twitter.com/search?q=%23sharkweek";
},
{
name = "JailbreakMe";
url = "http://search.twitter.com/search?q=JailbreakMe";
},
{
name = "Kourtney";
url = "http://search.twitter.com/search?q=Kourtney";
},
{
name = "Shark";
url = "http://search.twitter.com/search?q=Shark";
},
{
name = "Boondocks";
url = "http://search.twitter.com/search?q=Boondocks";
}
)
Если я пытаюсь получить значение для имени или URL, я не получаю ничего, что расстраивает. Это данные, которые мне понадобятся. Вы можете сказать, что это в формате словаря, потому что он отформатирован и правильно читает тренды. Я почти уверен, что что-то упустил, поэтому, пожалуйста, дайте мне знать, в каком направлении следовать.
Вот код:
// this is all touch JSON magic. responseString has the full contents of trends.json
NSString *response = [request responseString];
NSLog(@"response value is:%@",response);
NSString *jsonString = response;
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
//end of touchJSON. It is in a dictionary now.
NSLog(@"dictionary:%@, error %@", dictionary, error); //http://cl.ly/adb6c6a974c3e70fb51c
NSString *twitterTrends = (NSString *) [dictionary objectForKey:@"trends"];
NSLog(@"ANSWER:%@",twitterTrends); //http://cl.ly/fe270fe7f05a0ea8d478