2016-02-28 3 views
2

Например, у меня есть JSONSwiftyJSON - можно проверить тип объекта?

var json = JSON(data: data!)

внутри него я ссылку на объект

var list = json["OBJECT"]

есть способ, что я могу проверить, если это объект, или массив, или string и return bool?

This не помогает. var list всегда будет тип JSON. И я хочу найти способ проверить, что внутри.

+1

Возможный дубликат [Как для определения типа переменной в Swift] (http://stackoverflow.com/question s/24093433/how-to-define-the-the-a-variable-in-swift) – DeyaEldeen

+0

Объясняется, почему он не дублируется. –

+1

Большинство строк JSON, полученных по сети, различны - по крайней мере, типы коллекций, которые они возвращают, поэтому вы должны «знать», а не «гадать». – vadian

ответ

6

объекты JSON в SwiftyJSON имеют type свойство, тип которого является 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 
} 
0

взгляд на этот пример:

//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") 
    } 
}