在 Objective c 中难以处理 json 格式

Posted

技术标签:

【中文标题】在 Objective c 中难以处理 json 格式【英文标题】:Difficult to handling json formatting in Objective c 【发布时间】:2017-07-20 05:40:14 【问题描述】:

我需要从这个数组中转换 json 字符串

( 
        1 = 4;
    ,
        
        8 = 20;
    )

实际上我需要像"custom":"1":"3","8":"21" 这样的输出,但我得到了“\n \"custom\" : \"[\\n \\n \\\"1\\\" : \\\"4\\\"\\n ,\\n \\n \\\"8\\\" : \\\"20\\\"\\n \\n]\"\n"

这是我的代码

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

有没有办法得到这样的输出:"custom":"1":"3","8":"21"

【问题讨论】:

【参考方案1】:

只需将NSJSONWritingPrettyPrinted 替换为 0。

【讨论】:

谢谢你,现在我得到了 ["1":"4","8":"20"] 。你能帮忙看看如何制作这样的 "7":"8","8":"5" @Subramani - 你有一个字典数组,如果你想输出一个 JSON 字典,在进行 JSON 转换之前从你的数组中生成一个字典。【参考方案2】:

尝试像这样删除NSJSONWritingPrettyPrinted 选项:

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

根据文档NSJSONWritingPrettyPrintedadds whitespace 使输出可读,删除该选项可提供最紧凑的 JSON。 更多here

【讨论】:

谢谢你,我已经这样做了,有什么办法可以从 ["1":"4" 中制作这样的 "7":"8","8":"5" ,"8":"20"]

以上是关于在 Objective c 中难以处理 json 格式的主要内容,如果未能解决你的问题,请参考以下文章

使用 Objective C 的 AFNetworking JSON 帖子返回不受支持的媒体类型

如何在 Objective C 中解析 JSON 格式

如何在Objective C中使用NSData创建json对象?

如何在 Objective C 中解析***的 JSON 数据?

Objective c- 获取 json 数组中的子 json 字符串

如何在 Objective c 中使用 JSON 服务发布数据