今天我有一个相当简单的问题。我有一个应用程序需要以 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/