#php #iphone #sqlite #uitextview #asihttprequest
#php #iPhone #sqlite #uitextview #asihttprequest
Вопрос:
У меня есть UITextView, который в конечном итоге отправляет текст в базу данных sqlite на iPhone. Позже я буду запрашивать эти данные у sqlite, помещать их в строку JSON и отправлять на сервер (PHP / MySQL) с iPhone с помощью ASIHTTPRequest
(using ASIFormDataRequest
class).
Существует условие данных, при котором эта отправка в PHP не может быть декодирована должным образом (с использованием json_decode
). Условие данных, похоже, заключается в том, что в тексте, который был введен в sqlite через UITextView, есть новая строка.
Вещи, которые я тестировал:
- Запишите ту же строку JSON, которую я пытаюсь отправить на сервер, в текстовый файл на iPhone. Возьмите этот текст, скопируйте его в веб-форму (которую я собрал для устранения неполадок), которая отправляет данные в тот же PHP-скрипт, который принимает JSON с iPhone. Это успешно обрабатывается (например, декодируется и записывается в базу данных MySQL).
- Выпишите ту же строку JSON, которую я пытаюсь отправить на сервер, на консоль (используя
NSLog
). Скопируйте текст из консоли и скопируйте его в веб-форму, которая отправляет данные в тот же PHP-скрипт, который принимает JSON с iPhone. Это успешно обрабатывается (например, декодируется и записывается в базу данных MySQL). - Удалите новую строку в базе данных sqlite, запустите приложение и отправьте JSON на сервер в соответствии с дизайном, нет problem…it декодирует и записывает в базу данных MySQL.
Я хочу сохранить новую строку в тексте, поскольку это то, что ввел пользователь, и чего они будут ожидать, когда увидят информацию на сервере. Не уверен, как сохранить новую строку и в то же время иметь возможность отправлять данные на сервер без каких-либо проблем.
Спасибо,
Шон
Ответ №1:
Как вы создаете строку JSON?
Новая строка должна быть закодирована в JSON в виде двух символов: n
Комментарии:
1. У меня есть метод, который запрашивает базу данных sqlite и возвращает
NSMutableArray
изNSMutableDictionary
(каждый словарь представляет собой строку полей / значений из результата запроса). Я отправляю этоNSMutableArray
другому методу, который собирает воедино строку JSON из этогоNSMutableArray
. Я просто беру то, что когда-либо возвращалось из запроса, создаю JSON и отправляю его.2. Вы имеете в виду, что вы сами создаете строку JSON вручную? Если это так, то проблема, скорее всего, будет такой, как указано в моем ответе, вам нужно закодировать новую строку в n. Вместо этого вы могли бы рассмотреть возможность использования такой платформы, как code.google.com/p/json-framework для генерации JSON, который будет решать проблемы с кодировкой. Если это не помогло, пожалуйста, добавьте пример недопустимого JSON в свой вопрос.
3. Да, вручную. Я попробую вашу рекомендацию с помощью json-framework. Спасибо!
4. В качестве продолжения я использовал рекомендованный json-framework, и он решил мои проблемы с кодировкой новой строки. Еще раз спасибо.