当前位置: 首页 > 面试题库 >

如何将字典数组转换为JSON?

郁明诚
2023-03-14
问题内容

我有一些字典想要转换为JSON。我的对象是类型,[[String: AnyObject]]并且最终要得到这样的示例:

[
  { "abc": 123, "def": "ggg", "xyz": true },
  { "abc": 456, "def": "hhh", "xyz": false },
  { "abc": 789, "def": "jjj", "xyz": true }
]

这是我正在尝试的方法,但是编译器不喜欢我的声明:

extension Array where Element == Dictionary<String, AnyObject> {
    var json: String {
        do { return try? NSJSONSerialization.dataWithJSONObject(self, options: []) ?? "[]" }
        catch { return "[]" }
    }
}

我怎样才能做到这一点?


问题答案:

一种简单的实现方法是扩展CollectionType。

使用可选的绑定和向下转换,然后序列化为数据,然后转换为字符串。

extension CollectionType where Generator.Element == [String:AnyObject] {
    func toJSONString(options: NSJSONWritingOptions = .PrettyPrinted) -> String {
        if let arr = self as? [[String:AnyObject]],
            let dat = try? NSJSONSerialization.dataWithJSONObject(arr, options: options),
            let str = String(data: dat, encoding: NSUTF8StringEncoding) {
            return str
        }
        return "[]"
    }
}

let arrayOfDictionaries: [[String:AnyObject]] = [
    ["abc":123, "def": "ggg", "xyz": true],
    ["abc":456, "def": "hhh", "xyz": false]
]

print(arrayOfDictionaries.toJSONString())

输出:

[
  {
    "abc" : 123,
    "def" : "ggg",
    "xyz" : true
  },
  {
    "abc" : 456,
    "def" : "hhh",
    "xyz" : false
  }
]


 类似资料:
  • 问题内容: 目前,我有这本词典,使用印刷: 当我这样做时: 我收到此错误: 问题答案: 如果您可以在json中使用不可打印的符号,请添加到通话中。 如果是假的,那么返回值将是一个 实例受到正常的Python来 强制规则,而不是被转义为ASCII 。

  • 问题内容: 我知道如何在Python中将字典转换为列表,但是以某种方式尝试获取结果列表的总和时,出现了错误。另外,我计划只对列表中的几项进行汇总。 仔细检查后,我发现打印出结果列表后,它始终给出我无法删除的输出。我该如何解决? 问题答案: 在python-3.X中不会返回类似在python-2.X中的执行方式。在python-3.x中,它返回一个对象,该对象是一个类似于集合的对象,并使用哈希表存储

  • 问题内容: 我有以下字符串,这是一个字符串化的Python字典: 如何从上述字符串中获取Python字典? 问题答案: 好吧,你可以做 但是,如果字符串包含用户输入,则是个坏主意,因为表达式中可能包含一些随机的恶意函数。 因此,更安全的选择可能是: 来自http://docs.python.org/library/ast.html#ast.literal_eval: 提供的字符串或节点只能由以下P

  • 问题内容: 我想在我的swift项目中做一个将String转换成Dictionary json格式的函数,但是出现一个错误: 无法转换表达式的类型(@lvalue NSData,options:IntegerLitralConvertible … 这是我的代码: 我在Objective-C中实现此功能: 问题答案: 警告:如果出于某种原因必须使用JSON字符串,这是将JSON字符串转换为字典的便捷

  • 问题内容: 我正在尝试将(Swift字典)转换为,以供以后在产生字符串的JSON库上使用 但不起作用 所有这些示例都不起作用。它们产生以下错误: 正确的做法是什么? 更新: 有效的代码 问题答案: 您必须像这样强制转换: 否则,在ex的方法中使用Swift字典和NSDictionary时,其处理方式几乎相同: 将完全正常工作。 更新后 如果将Dictionary值类型更改为非可选的String,则

  • 问题内容: 我无法访问JSON中的数据。我究竟做错了什么? 问题答案: 将字典转换为对象,而不是对象!因此,您必须使用方法将其加载到 请参阅作为保存方法和检索方法。 这是代码示例,可以帮助您进一步了解它: