ios - 如何在Ios中设置请求体中的对象名称以进行json解析

标签 ios objective-c nsdictionary nsjsonserialization

我是 JSON 解析新手,我正在使用以下代码将数据发布到服务器

    NSDictionary *newDatasetInfo = [NSDictionary dictionaryWithObjectsAndKeys:ClassicLevel, @"ClassicLevel",CurrentLevel,@"CurrentLevel",UpdatedDate,@"UpdatedDate",Name,@"Name",UpdatedTime,@"UpdatedTime", nil];

    NSError*error;
    //convert object to data
    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:newDatasetInfo options:kNilOptions error:&error];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:@"http://testURL"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];

    [request setHTTPBody:jsonData];

通过使用它,我可以生成以下请求正文

{
 "Name":"abc",
 "UpdatedDate":"",
 "CurrentLevel":"2",
 "UpdatedTime":"122",
 "ClassicLevel":"1" 
}

但我必须生成请求正文,例如:

{
"objTimesheet" : 
    {
    "Name":"abc",
    "UpdatedDate":"",
    "CurrentLevel":"2",
    "UpdatedTime":"122",
    "ClassicLevel":"1" 
    }
}

提前致谢。

最佳答案

您正在字典中查找字典。摆脱你已有的:

NSDictionary *newDatasetInfo = [NSDictionary dictionaryWithObjectsAndKeys:ClassicLevel, @"ClassicLevel",CurrentLevel,@"CurrentLevel",UpdatedDate,@"UpdatedDate",Name,@"Name",UpdatedTime,@"UpdatedTime", nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:newDatasetInfo, @"objTimesheet", nil];

NSError*error;
//convert object to data
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error];

关于ios - 如何在Ios中设置请求体中的对象名称以进行json解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545098/

相关文章:

objective-c - FM数据库 : is it safe to leave failing inserts (unique PK key violated)?

ios - 如何根据 NSString 日期键在 NSDictionary 下方排序?

json - 解开 Json Swift(发现为零)

iphone - 开发像 webapp.to 这样的移动应用程序

android - 用户登录直接从应用程序或从应用程序到 Web 界面写入数据库?

ios - UITableView 的第一部分中的标题显示有跳转

ios - 想要在到达底部之前触发 scrollViewDidScroll

iphone - 以编程方式创建字典属性列表

ios - 为 UIStackView iOS 设置优先级

ios - 应用程序在 IOS 6 上崩溃 - UIViewControllerHierarchyInconsistency