在 Objective-C 中发布 JSON

2024-04-09

我今天有一个相当简单的问题。我有一个应用程序需要以 2D GPS 坐标的形式将简单的 JSON 数组发送到远程服务器。该应用程序将使用 CoreLocation 框架来生成这些坐标。现在,我想对一些示例坐标进行硬编码以获得正确的 JSON。但是,我似乎无法在 ObjC 代码中正确形成 JSON。

这是代码:

NSMutableURLRequest *request =
[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:myserver/handler/index"]];
[request setHTTPMethod:@"POST"];
NSString *jsonString = @"{"
@"  \"geo\": {"
@"    \"lat\": \"37.78\","
@"    \"lon\": \"-122.40";
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
[request setHTTPBody:jsonData];
(void)[[NSURLConnection alloc] initWithRequest:request delegate:self];

这是服务器期望的(但没有收到):

{
"geo": {
    "lat": "37.78",
    "lon": "-122.40"
}

我确定这是一个简单的 JSON 格式问题,否则我会感到很困惑。

任何帮助总是值得赞赏!


你正在以艰难的方式做到这一点。创建一个NSDictionary然后将其转换为所需的 JSON 数据:

NSDictionary *dictionary = @{ @"geo" : @{ @"lat" : @"37.78", @"lon" : @"-122.40" } };
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
if (jsonData) {
    // process the data
} else {
    NSLog(@"Unable to serialize the data %@: %@", dictionary, error);
}

根本不需要绳子。

编辑:如果您的真实数据是对象数组,则创建字典数组或您需要的任何结构。其余的都是一样的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Objective-C 中发布 JSON 的相关文章