2014-08-28 5 views
-2

встречает проблему для разбора JSON, я имею в JSon так:IOS разбор конкретного JSon

{ 
    "id": 0, 
    "message": "ok" 
} 

Я попробовал несколько вещей, чтобы попытаться получить значение «ид» и «сообщение» , но у меня всегда есть ошибка.

Как я могу сделать, чтобы выбрать значение «id» и «message», пожалуйста?

(я получаю результат моего JSON в NSMutableArray)

EDIT:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSError *jsonParsingError = nil; 
NSMutableDictionary *publicTimeline = [NSJSONSerialization JSONObjectWithData:response options:0 error:&jsonParsingError]; 

NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:publicTimeline.allKeys]; 
[sortedArray sortUsingSelector:@selector(localizedStandardCompare:)]; 
return sortedArray; 
+5

Вы предоставили JSON в форме 'NSDictionary'. Разделите JSON на 'NSDictionary' и используйте' [responseDictionary valueForKey: @ "message"] ' – Akhilrajtr

+0

вы можете показать свой код? – Bhupesh

+0

Я использую это, чтобы выполнить webservice и получить jSON: Я отредактировал мое сообщение. – deveLost

ответ

1

Ваша строка JSON представляет словарь. Таким образом, вы должны использовать NSDictionary вместо NSArray.

EDIT Я

// convert dictionary into JSON 
NSDictionary *fromDict = @{@"id": @(0), @"message": @"ok"}; 
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:fromDict options:0 error:nil]; 

// convert data (like you get from an API request) to dictionary 
NSDictionary *toDict = [NSJSONSerialization JSONObjectWithData:JSONData options:0 error:nil]; 
+0

Я попытался преобразовать свой NSMutableArray в NSData, но журналы показывают мне «null» для id и message:/ – deveLost

+0

@develost Вам не нужно ничего конвертировать в NSData, и массив в вашем коде только дает вам ключи из словаря. Поскольку все ответы показывают вам, вы можете просто получить два значения прямо из словаря return парсером JSON – Paulw11

+0

ok, я понял свою ошибку ... спасибо! – deveLost

1

Попробуйте это,

Разбираем ответ JSON в NSDictionary

NSDictionary * responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
NSString *message = [responseDictionary valueForKey:@"message"]; 
0

Я думаю, что его полезным для Вас (В ответ вы получите первый словарь и словарь содержит два key.so)

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSError *jsonParsingError = nil; 
NSDictionary *publicTimeline = [NSJSONSerialization JSONObjectWithData:response options:0 error:&jsonParsingError]; 

NSString *message = [publicTimeline valueForKey:@"message"]; 

Я думаю, это полезно для ссылки вы. json parser

+0

Это не NSMutableDictionary. –

+0

То, что возвращается NSJSONSerialization (без параметров), является NSDictionary, а не NSMutableDictionary. Вы не можете использовать NSDictionary, как если бы это был NSMutableDictionary. –

Смежные вопросы