2011-06-30 5 views
4

Мое приложение iphone, получающее данные json с сервера php.Получение данных json с php-сервера с помощью «"»

2 основные вопросы, просто чтобы быть уверенным:

1-В некоторых из полей данных JSON, я вижу """, это как JSON отправить цитаты, и мне нужно, чтобы очистить его в приложение iPhone? или есть элегантный и чистый способ пропустить эту вещь?

2-Данные находятся в UTF-8, я замечаю, что если массив в массиве, UTF-8 не отображается в правильном направлении, а это показывает коды. Это ошибка в библиотеке JSON? или есть что-то, что нужно проверить на стороне сервера?

благодарит заранее.

+0

Я бы более внимательно рассмотрел ваш собственный код, прежде чем наклониться к ошибке в библиотеке JSON или в функциях PHP 'json_ *'. –

+0

, чтобы убедиться, что в iphone-стороне im используется github.com/stig/json-framework. действительно ли нужно делать что-то конкретное для обработки UTF-8? или просто отправить строку в парсер? что им делать: NSString * content = [[NSString alloc] initWithData: self.m_dataToParse encoding: NSUTF8StringEncoding]; SBJsonParser * _parser = [[SBJsonParser alloc] init]; NSDictionary * jsonContentDictionary = [_parser objectWithString: content]; – mark100

ответ

0

Литеральная цитата в любом месте строки JSON должна быть \". """ будет недействительным JSON и синтаксическая ошибка. Какой «сервер» создает этот текст JSON? Iphone или PHP json_encode()?

+0

php-сервер создает json. iphone загружает данные и анализирует их. Что относительно массива в массиве? данные там отображают текст в кодах \ u454 \ u \ 453, как это, а не текст. это ошибка в парсере? или somthing на сервере? – mark100

+0

Проведите некоторую отладку в PHP и посмотрите, что кормится в 'json_encode()', а также то, что выходит. Я никогда не видел, чтобы функция вызывала искаженный вывод, и он определенно правильно обрабатывает вложенные массивы. Тем не менее, что-то еще может делать фильтрацию выходных данных в PHP, и это может быть искажение вещей. –

+0

im using https://github.com/stig/json-framework, – mark100

1

это как JSON отправить котировки

No. " является HTML или XML объект. Цитата в формате JSON будет "\""

Я заметил, что если есть массив в массив, UTF-8 не отображается в правильном направлении, и это шоу коды. Это ошибка в библиотеке JSON?

Возможно, это ошибка в кодере. Это может быть ошибка в декодере. Это может быть ошибка в том, как вы используете один из них.

Мы не можем сказать, не зная больше о том, как выглядит вход и выход.

+0

для того, чтобы убедиться, что на iphone стороне, используя эту библиотеку: im using github.com/stig/json-framework действительно нужно сделать что-то конкретное для обработки UTF-8? или просто отправить строку в парсер? Что такое im: NSString * content = [[NSString alloc] initWithData: self.m_dataToParse encoding: NSUTF8StringEncoding]; SBJsonParser * _parser = [[SBJsonParser alloc] init]; NSDictionary * jsonContentDictionary = [_parser objectWithString: content]; – mark100

0

" - это объект HTML, способ представления символов, которые браузер может использовать в качестве HTML-кода.

PHP 5.2/5.3 (не может говорить для других) не должен касаться объектов html, поэтому убедитесь, что вы не используете html_entities(...) в своей строке json_encode. Очень сомневаюсь, что ошибка находится в кодере.

1

Что, вероятно, происходит в том, что цитата закодирована ", а затем амперсанд получает кодировку ". Это случилось с самим собой несколько раз, когда вы находите и заменяете мои файлы JSON/XML. Просто перейдите и измените их на ".

Если вы подгружать их из другого API или источника, где вы не можете редактировать их формат, просто использовать

html_entity_decode($json->data); 

вокруг, что вы будете печатать на этой странице.

+0

, который сделал трюк для меня – user2387149

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