2009-08-14 1 views
7

Есть ли у кого-нибудь образец кода для создания полезной нагрузки JSON для отправки в качестве запроса HTTP POST в Objective-C? Пример JSon полезной нагрузки Ищу для генерации выглядит следующим образом:Создание полезной нагрузки JSON для HTTP-запроса POST в Objective-C

{__metadata:{\"Uri\":\"/NewLoc/\", 
\"Type\":\"Location.NewLoc\"}, \"LocID\":\"100006\", 
\"latitude\": \"40.123456\", \"longitude\": \"-65.876543\", 
\"VisitDate\": \"\\/Date(1249909200000)\\/\", \"type\": \"S\"} 

Я использую в JSON-структуру, загруженную с: http://code.google.com/p/json-framework/

Любого образца код будет высоко оценен.

ответ

17

Вы уже используете json-framework, так что это половина сделанной работы.

Этот фреймворк может использовать любой совместимый с ключом код и переводить его в JSON. Это может быть объект Core Data, объект NSDictionary и любой произвольный объект, если он поддерживает KVC.

Кроме того, json-framework добавляет категорию, которая позволяет вам получить строку JSON из этих объектов, используя сообщение JSONRepresentation.

Итак, предположим, что вы хотите использовать NSDictionary, вы могли бы написать:

NSMutableDictionary* jsonObject = [NSMutableDictionary dictionary]; 
NSMutableDictionary* metadata = [NSMutableDictionary dictionary]; 
[metadata setObject:@"NewLoc" forKey:@"Uri"]; 
[metadata setObject:@"Location.NewLoc" forKey:@"Type"]; 
[jsonObject setObject:metadata forKey:@"__metadata"]; 
[jsonObject setObject:@"100006" forKey:@"latitude"]; 
// ... complete the other values 
// 
NSString* jsonString = jsonObject.JSONRepresentation; 
// jsonString now contains your example strings. 
+0

Aviad, что является удивительным. иногда нам нужны только короткие образцы кода, чтобы получить эту идею. он стоит 2 часа отладки. Благодаря! –

+0

@Hamutsi: Спасибо, мне просто жаль, что я не получил ответный знак для этого;) –

+1

ой, я сделал, 10 апреля, сразу после размещения комментария :) –