【问题标题】:It's possible to load an array of tuple from a json file?可以从 json 文件中加载一个元组数组吗?
【发布时间】:2015-02-05 07:13:10
【问题描述】:

我需要从 json 文件加载一个元组数组。我尝试了以下方法,但它不起作用。

我的 json 文件是:

{ "破碎" : [(1,1), (1,2), (2,2), (3,1)]}

然后我使用loadsjsonfrombundle 从 JSON 加载数据,如下所示:

let broken = [(Int, Int)]!

if let dictionary = Dictionary<String, AnyObject>.loadsjsonfrombundle(filename) { 

broken = (dictionary["broken"]) as Array

}

有什么建议吗?

谢谢。

【问题讨论】:

  • 首先检查你的JSON到jsoneditoronline.org
  • 看看 json.org。 JSON 中没有元组。您可以改用 2 元素数组。
  • @AshishKakkad 谢谢我检查过了。 json好像没有元组类型。
  • @MartinR 谢谢。所以我将使用 2 元素数组。
  • 您的文件不是 JSON 文件。任何 JSON 解析器都会拒绝它。

标签: ios arrays json swift tuples


【解决方案1】:

数组是值的有序集合。数组以 [ 开头 (左括号)并以 ] 结尾(右括号)。值是分开的 by ,(逗号)。

值可以是双引号中的字符串、数字、true 或 false 或 null,或对象或数组。这些结构可以 嵌套。

所以这是无效的 JSON 格式

{ "broken" : [(1,1), (1,2), (2,2), (3,1)]}

因为(1,1) 不是双引号中的字符串、数字、true 或 false 或 null,或对象或数组

可能的正确格式是

{ "broken" : [[1,1], [1,2], [2,2], [3,1]]}

在这种情况下,您可以遍历数组数组并使用 array.firstObject 和 array.lastObject 初始化元组

About JSON

【讨论】:

  • 感谢您的出色解决方案。
猜你喜欢
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 2022-01-25
相关资源
最近更新 更多