在Objective-C中为POST HTTP请求生成JSON有效负载

时间:2009-08-14 03:20:45

标签: objective-c json httpwebrequest payload

有没有人有任何示例代码来创建在Objective-C中作为HTTP POST请求发送的JSON有效负载?我想要生成的json有效负载的示例如下:

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

我正在使用从http://code.google.com/p/json-framework/

下载的json框架

非常感谢任何示例代码。

1 个答案:

答案 0 :(得分:18)

你已经在使用json框架了,所以完成了一半的工作。

此框架可以使用任何与键值编码兼容的对象并将其转换为JSON。它可以是Core Data对象,NSDictionary对象,也可以是任意对象,只要它支持KVC。

此外,json-framework添加了一个类别,允许您使用JSONRepresentation消息从这些对象中获取JSON字符串。

所以,假设你想使用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.