Как отправить массив объектов из приложения iPhone в PHP Script с помощью JSON - PullRequest
1 голос
/ 04 января 2010

У меня есть приложение для iPhone с массивом объектов, которые я хочу отправить в сценарий PHP и сохранить их в базе данных mySQL. Объекты в массиве содержат только плавающие точки и строки, ничего особенного.

Из того, что я понимаю, лучший способ отправить массив в скрипт php - это преобразовать массив в JSON, отправить его в скрипт php через сообщение http и выполнить код json_decode на другом конце. Однако мне трудно понять, как преобразовать массив в объект json.

Может кто-нибудь дать мне указатель с чего начать?

Ответы [ 3 ]

4 голосов
/ 04 января 2010

http://code.google.com/p/touchcode/wiki/TouchJSON

"TouchJSON - это анализатор и генератор для JSON, реализованный в Objective C.

Он основан на моем коде CocoaJSON: http://toxicsoftware.com/cocoajson/

Здеськак это использовать: TouchJSONHowTo "

3 голосов
/ 04 января 2010

Начните с библиотеки JSON для target-c:

http://code.google.com/p/json-framework

Это значительно упростит сериализацию, поскольку в ней есть метод преобразования NSArray в JSON.

http://json -framework.googlecode.com / SVN / багажник / документация / interfaceSBJSON.html # 830175bff0fbef8ccb82da852a154b48

Оттуда вы можете отправлять сообщения, используя различные механизмы, но NSURLConnection является самым простым. Вы можете сделать синхронизацию или асинхронность, в зависимости от ваших потребностей.

Вам нужно будет установить несколько заголовков по запросу для json:

NSMutableURLRequest * r = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0];
[r addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[r setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];    
0 голосов
/ 04 января 2010

JSON - это простой текстовый формат. Вы можете написать строку самостоятельно, зацикливая массив, если не хотите использовать библиотеку.

http://www.json.org/example.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...