如何快速获取json对象中的所有键

问题描述

我有如下所示的JSON对象

{
"a":"123","b":"testing"
}

在Java中,我正在使用JSONObject.names()方法

JSONArray keys = jsonObject.names();

结果变得像这样["a","b"];

类似的结果如何迅速得到?

谢谢。

解决方法

您可以使用 JSONSerialization 将JSON data解析为Dictionary类型的[String:Any],然后使用keys来进行从中获取所有密钥字符串。

do {
    if let dict = try JSONSerialization.jsonObject(with: data) as? [String:Any] {
        print(dict.keys)
    }
} catch {
    print(error)
}
,
var results = [String:Array<DataModel>]

哪里

class DataModel {
    var name: String?     
}

并获取键和值,

for i in 0...(results.length-1){
    // To print the results keys
    print(results.keys[results.startIndex.advancedBy(i)])
    // To get value from that key
    let valueFromKeyCount = (results[results.keys[results.startIndex.advancedBy(i)]] as Array<DataModel>).count
    for j in 0...(valueFromKeyCount-1) {
         let dm = results[results.keys[results.startIndex.advancedBy(i)]][j] as DataModel
         print(dm.name) 
    }
}

您的问题已在此处回答-How to fetch the key from JSON in Swift?