如何在没有arrayName的情况下解析包含json对象内的数组的JSON

时间:2017-11-22 05:18:46

标签: swift swift3

我得到像这样的JSON数组

[
{
"accNo":"8567856",
"ifscCode":"YESB000001"
},
{
"accNo":"85678556786",
"ifscCode":"YESB000001"
}
]

我在json中得到一个没有arrayName的数组。 我尝试在swift 3中解析这个JSON,并使用类型转换它来获取所有数组中的值(使用as?NSArray,NSDictionary,[Array -String,AnyObject - ]等)。但是这一切都失败了。有没有办法在swift中获取数组值

2 个答案:

答案 0 :(得分:4)

您可能需要查看SwiftyJSON,但这是使用Foundation的答案。

Swift 4:

let str = """
[
{
"accNo":"8567856",
"ifscCode":"YESB000001"
},
{
"accNo":"85678556786",
"ifscCode":"YESB000001"
}
]
"""

let data = str.data(using: .utf8)!

do {

    let json = try JSONSerialization.jsonObject(with: data) as? [[String:String]]

    for item in json! {

        if let accNo = item["accNo"] {
            print(accNo)
        }

        if let ifscCode = item["ifscCode"] {
            print(ifscCode)
        }
    }

} catch {
    print("Error deserializing JSON: \(error)")
}

答案 1 :(得分:0)

使用JSONSerialization将数据转换为字符串字典数组[[String:String]]

let str = """
[
{
"accNo":"8567856",
"ifscCode":"YESB000001"
},
{
"accNo":"85678556786",
"ifscCode":"YESB000001"
}
]
"""
let data = str.data(using: .utf8)!
let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as! [[String:String]]
print(json) // [["accNo": "8567856", "ifscCode": "YESB000001"], ["accNo": "85678556786", "ifscCode": "YESB000001"]]