2014-02-21 4 views
0

Я использую службы PHP в своем приложении. Я получаю ответ от сервера. Я пытался проанализировать строку ответа, но JSON Parser возвращает значение NULL. Я не могу разобрать эту строку ответа. У меня есть очки для этой проблемы, но никто не дает точных решений. Я использую парсер SBJson и NSJSONSeralization, но он возвращает нулевое значение. Я отправляю строку ответа ниже, пожалуйста, помогите мне. Response СтрокаНевозможно проанализировать строку ответа с помощью json parser

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]]) 
+0

ваших PHP услуг с помощью 'json_encode' функции? – alessio271288

+0

Как преобразовать точный формат из этой строки – Murali

+0

Вы уверены, что строка ответа точно такая же, как вы напечатали? – CouchDeveloper

ответ

1

Убедитесь, что вы синтаксического анализа JSON, как в коде ниже:

NSString * jsonString = @"{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"; 
NSData * jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
id jsonContainer = [NSJSONSerialization JSONObjectWithData:jsonData 
                options:NSJSONReadingMutableContainers 
                error:nil]; 
+0

Спасибо за ваш ответ – Murali

+0

он работает для одного словаря, но работает для нескольких словарей.Фактически мой ответ наступает именно так. "{\" category_id \ ": \" 1 \ ", \" category_name \ ": \" НАПИТКИ \ ", \" image_id \ ": \" 6 \ "}", "{\" category_id \ ": \ "1 \", \ "category_name \": \ "НАПИТКИ \", \ "image_id \": \ "7 \"} ", " {\ "category_id \": \ "3 \", \ "category_name \ ": \" BREAKFAST \ ", \" image_id \ ": \" 5 \ "}", "{\" category_id \ ": \" 3 \ ", \" category_name \ ": \" BREAKFAST \ ", \ "image_id \": \ "6 \"} ", – Murali

+0

это список строк. Действительная строка json будет выглядеть так: '@" [\ n {\ "category_id \": \ "1 \", \ "category_name \": \ "НАПИТКИ \", \ "image_id \": \ "6 \"} , \ n {\ "category_id \": \ "1 \", \ "category_name \": \ "НАПИТКИ \", \ "image_id \": \ "7 \"}, \ n {\ "category_id \": \ "3 \", \ "category_name \": \ "BREAKFAST \", \ "image_id \": \ "5 \"}, \ n {\ "category_id \": \ "3 \", \ "category_name \ ": \" BREAKFAST \ ", \" image_id \ ": \" 6 \ "} \ n]" ' –

0

Этот ответ

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]])

не является правильным JSON. Это происходит, сервер «хотел» отправить JSON, но не понял его;) - или вы не смогли правильно распечатать JSON.

JSON, вероятно выглядеть следующим образом:

[[{"category_id":"1","category_name":"BEVERAGES","image_id":"6"}]] 

или

[[{"category_id":1,"category_name":"BEVERAGES","image_id":6}]] 

Примечание: пары ключ/значение может быть заказана.

Кроме того, убедитесь, что вы указали правильное значение заголовка Accept, например. «application/json» в вашем запросе (предостережение: перед изменением было неправильным).

И код Статус проверки (должно быть 200 (OK)) и MIME тип ответа, прежде чем пытаться разобрать ответ с JSON парсер. Если вы ожидаете JSON, вы должны получить заголовок Content-Type (см. Также свойство MIMEType из NSURLResponse), значение которого должно быть application/json.

+0

MIME Type is text/html – Murali

+0

@Murali' text/html' не следует анализировать как JSON. Однако '([[" {\ "category_id \": \ "1 \", \ "category_name \": \ "НАПИТКИ \", \ "image_id \": \ "6 \"} "]])' doesn Я тоже выгляжу как html. – CouchDeveloper

+0

Я не понимаю этот ответ с утра, я работаю над этим. все еще я не могу сделать. Я получаю этот ответ. я проверил много раз, но тот же ответ. MIME Тип: text/html – Murali

-1

Лучшим решением было бы исправить его на сервере и правильно закодировать.

Если это не представляется возможным использование [jsonString stringByReplacingOccurrencesOfString:@"\" withString:@""];

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