Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftyJSON-是否可以检查对象类型?_Ios_Swifty Json - Fatal编程技术网

Ios SwiftyJSON-是否可以检查对象类型?

Ios SwiftyJSON-是否可以检查对象类型?,ios,swifty-json,Ios,Swifty Json,例如,我有一个json var json=json(数据:data!) 在它里面我引用了对象 var list=json[“对象”] 有没有一种方法可以检查它是对象、数组还是字符串并返回bool 没用变量列表将始终是JSON类型。我想找到一种方法来检查里面的东西。看看这个例子: //let json = ["OBJECT":"stringvalue"] let testArray = [1,2,3] let json = ["OBJECT":testArray] if let element

例如,我有一个json

var json=json(数据:data!)

在它里面我引用了对象

var list=json[“对象”]

有没有一种方法可以检查它是对象、数组还是字符串并返回bool

没用<代码>变量列表将始终是
JSON
类型。我想找到一种方法来检查里面的东西。

看看这个例子:

//let json = ["OBJECT":"stringvalue"]

let testArray = [1,2,3]
let json = ["OBJECT":testArray]

if let element = json["OBJECT"] {
    if element is String {
        print("yes")
    }
    switch element {
    case is String:
        print("is string")
    case is Array<Int>:
        print("is array of int")
    default:
        print("is something else")
    }
}
//让json=[“对象”:“stringvalue”]
设testArray=[1,2,3]
让json=[“OBJECT”:testArray]
如果let element=json[“OBJECT”]{
if元素是字符串{
打印(“是”)
}
开关元件{
大小写为字符串:
打印(“是字符串”)
案例是数组:
print(“是int的数组”)
违约:
打印(“是其他东西”)
}
}

SwiftyJSON中的JSON对象有一个类型为
enum

public enum Type: Int {
    case number
    case string
    case bool
    case array
    case dictionary
    case null
    case unknown
}
比如说

var list = json["OBJECT"]
switch list.type {
  case .array: print("list is Array")
  case .dictionary: print("list is Dictionary")
  default: break
}

的可能重复解释了为什么不重复。通过网络接收的大多数JSON字符串都是不同的–至少它们返回的集合类型–因此您应该“知道”而不是“猜测”。您确实有时间进行注释和编辑。我建议你花点时间挑选一个答案。当我尝试这个时,我得到。。。模式不能在两种情况下都匹配“type”错误类型的值lines@SamLuther在Swift 3+中,枚举大小写为小写。我更新了答案。