У меня есть приложение iPhone, которое использует ASIHTTPRequest для отправки данных в php-файл, который затем использует sql для обновления базы данных соответственно.
Что меня беспокоит, я продолжаю читать, что должен кодировать мои опубликованные данные в формате JSON. Может ли кто-нибудь объяснить мне суть этого? Зачем мне кодировать в формате JSON? Каковы преимущества, потребности в этом.
РЕДАКТИРОВАТЬ:
Вот как я отправляю свои данные:
-(void) postToDB:(NSString*) msg{ NSString *myphp = @"http://localhost:8888/databases/test.php"; NSURL *url = [NSURL URLWithString:myphp]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request setPostValue:msg forKey:@"message"]; [request setDelegate:self]; [request startAsynchronous]; }
Инкапсулирование ваших данных в структуре JSON помогает создать структурированный протокол связи с вашим сервером. Не останавливаясь на этом, в зависимости от ваших потребностей, посмотрите на спецификации для JSON-RPC, например. Это позволяет вам иметь полностью определенный протокол для обмена данными, когда методы всегда передаются одинаково, ошибки всегда возвращаются одинаково.
Использование JSON, JSON-RPC, SOAP или любого другого «конверта», строго говоря, никогда не является обязательным. Это просто хорошая практика стандартизации связи по проводам.
Кроме того, я не знаю, установлен ли setPostValue:ForKey:
автоматически setPostValue:ForKey:
символы, когда это необходимо, но представьте, что вы отправляете GET в http: //whatever/get.php? Nickname = nick & with? Special @ chars & password = qzerty . Что здесь происходит? ваш PHP-скрипт не сможет правильно проанализировать поля «ник» и «пароль». Инкапсулирование ваших данных в JSON с помощью инфраструктуры JSON (вы можете превратить словарь NSString в структуру JSON безупречно в одной строке кода) помогает предотвратить такую ситуацию.
Я вижу это как мужественное разделение базы данных из вашего приложения. Если вы используете JSON вместо простого SQL, это дает вам возможность отключать базы данных и создавать новые представления. Например, вы устали от MYSQL и хотите попробовать один из этих фантазийных NOSQL db, таких как Mongodb, вместо перезаписи всего вашего приложения iphone вам просто сложно переписать один скрипт php. Еще один пример: если приложение будет хорошо, и вы хотите создать версию и версию Android, или веб-версию, JSON упростит это, нужно будет только установить библиотеку JSON и уйти!