在Objective-C中生成用于POST HTTP请求的JSON负载

7

有没有人有Objective-C样本代码生成JSON负载,以作为HTTP POST请求将其发送出去?我要生成的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-framework。

非常感谢提供任何样例代码。

1个回答

19
你已经在使用json-framework,这就完成了一半的工作。
该框架可以将任何符合Key-Value Coding标准的对象转换成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.

Aviad,太棒了。有时候我们只需要简短的代码示例来理解思路。这值得花费2个小时进行调试。谢谢! - Lior Frenkel
@Hamutsi:谢谢,我只是希望我能得到那个答案标记 ;) - Aviad Ben Dov
1
哦,我在4月10日评论后就做了。 - Lior Frenkel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接