ios - 如何构建特定格式的 JSON 字符串?

标签 ios json nsjsonserialization

<分区>


要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:Stack Overflow question checklist

关闭 9 年前

我想使用 NSJSONSerialization 格式化以下格式的 JSON 字符串:

{
"data":{"userName":"rrullo","password":"rrullo!"},
"meta":{"appId":"S3B9CU4R2B9JTXV9254Y","appVersion":"2.1.0","serverVersion":"1.1.0","platform":"iOS","deviceToken":"1234","tm_session_id":"BB0000001234"}
}

但是我不知道如何实现这种格式。有人可以帮帮我吗......

最佳答案

首先用你的“元”和“数据”信息填充两个 NSDictionaries。然后将它们添加到主 NSDictionary 中,然后使用 NSJsonSerialization 进行序列化

NSDictionary * metaDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"appId", @"S3B9CU4R2B9JTXV9254Y", @"appVersion", @"2.1.0", @"serverVersion", @"1.1.0", @"platform", @"iOS",..., nil];

NSDictionary * dataDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"userName", @"rrullo", @"password", @"rrullo!", nil];

NSDictionary * mainDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"data", dataDict, @"meta", metaDict, nil];

现在您可以使用 NSJsonSerialization 将 mainDict 转换为 NSString

NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mainDict 
                                                   options:NSJSONWritingPrettyPrinted 
                                                     error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData  encoding:NSUTF8StringEncoding];

希望对你有帮助

关于ios - 如何构建特定格式的 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301805/

上一篇:iphone - 异常 'NSInvalidArgumentException' ,原因 : '-[AnnotationView setCoordinate:]: unrecognized selector sent to instance

下一篇:ios - 当我收到警告时,如何找到 *在哪里* 不明确的布局?

相关文章:

ios - 处理恢复购买时如何处理旧交易?

json - 在Powershell或VBS中翻译的CURL命令

c# - CamelCase JSON WebAPI 子对象(嵌套对象、子对象)

ios - 如何显示 Json 对象中的键和值

ios - 对象是 NSMutableDictionary 的子类,但在 mutate 方法 (NSJSONSerialization) 上崩溃

ios - 尝试使用 swift 根据对象的公共(public)键拆分对象数组

ios - 重大变化和调用的方法

ios - 如何从 AFNetworking ios 中的 block 中提取数据?

android - 如何使用 Retrofit 2.0 (Kotlin) 正确解析嵌套的 JSON 对象?

ios - 如何删除警告 "Conditional cast from ' 任何'到 'AnyObject' 总是成功"