IOS - 如何在 Swift 3 中从 JSON 中捕获动态数组维度
Posted
技术标签:
【中文标题】IOS - 如何在 Swift 3 中从 JSON 中捕获动态数组维度【英文标题】:IOS - How to catch dynamic array dimension from JSON in Swift 3 【发布时间】:2016-11-17 05:13:20 【问题描述】:大家好,我需要帮助。我有带有动态数组维度值的 JSON。这是一个例子:
//array 1 dimension
"array_dimension" : 1, //we can change to 2 dimension or more
"my_array" : [0, 1, 2, 3, 4] //the value adjust with array_dimension
//array 2 dimension
"array_dimension" : 2,
"my_array" : [[0, 1, 2], [3, 4], [5]]
//array 3 dimension
"array_dimension" : 3,
"my_array" : [[[0, 1], [2]], [[3], [4]], [[5]]]
现在我只能在具有静态数组维度的变量中捕获 my_array 值,如下所示:
//example value in array 2 dimension
"array_dimension" : 2,
"my_array" : [[0, 1, 2], [3, 4], [5]]
//Program to catch my_array value in Swift 3
if let my_array = myJSON["my_array"] as? [[Int]]
var myArray: [[Int]]?
myArray = my_array
else
print("\(TAG) error : JSON parsing my_array not found")
如何从变量 (Swift 3) 中的 my_array 值中捕获所有动态数组维度?
更新: 我如何使用这种技术?
【问题讨论】:
是的,array_dimension 的值可能是无限的,而 my_array 的值可能会随着 array_dimension 的值调整 不,我希望数组值保持在多维中。 是的,我想是的。但是感谢您的回复:) 【参考方案1】:你的数组不是Array<Int>
,你的数组是Array<Any>
。
在应用程序内部,您知道根数组中的数组有多深。基于此,您可以采用“最后一个”元数组,其中包含 Int 值(类型为Array<Any>
)。之后,您可以通过索引获取元素并使用:
let value : Int = Null;
if let intElement = array[index] as? Int
value = intElement;
else
print("Error with element type (print element)");
【讨论】:
哇!真棒答案。非常感谢@Andrew。这解决了我的问题。以上是关于IOS - 如何在 Swift 3 中从 JSON 中捕获动态数组维度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中从 NSDictionary 生成 JSON 数据
Swift 3 - 在 Safari 中从 JSON 打开 URL
如何在 xcode (swift) 中从 Json Schema / Json 生成模型对象?