ios - 在 Objective-C 中发布 JSON

标签 ios objective-c json

今天我有一个相当简单的问题。我有一个应用程序需要以 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 格式问题,或者我的 numskull 移动。

我们将不胜感激任何帮助!

最佳答案

你这样做很困难。创建一个 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);
}

根本不需要字符串。

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

关于ios - 在 Objective-C 中发布 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16698387/

相关文章:

json - 在 Go 中解码请求正文——为什么我会收到 EOF?

ios - UIButtonBackground 图像比按钮框架小。我怎样才能平等?

ios - UITableView 部分未按预期排序

ios - Sprite Kit - 检测接触

objective-c - 从 NSMutableArray 中获取最后 x 个对象

java - 如何使用高性能解析器在 Java 中解析 JSON?

javascript - jquery javascript 从 JSON 对象中删除对象数据

ios - 如何在OS X应用程序中重置内容和设置?

ios - 为什么 UIBarButtonItem 中的 UIButton 没有显示在导航栏中?

ios - Segue 到 Storyboard 中的 Person ViewController