我正在使用Swift进行JSON解析。
var results = [String:[AnyObject]]()
以上results
的数据如下所示,
"fruit" = (
"apple",
"orange"
);
此处,数据在运行时动态附加。我只需要获取密钥并将其作为标题显示在表视图中。
如何在swift中从key
获取results
?
答案 0 :(得分:2)
NSJSONSerialization代码示例...
<div class="wrap-select">
<select onchange="setLocation(this.value)">
<option value="http://localhost/purcheasy/phones.html?dir=asc&order=position" selected="selected">Position</option>
<option value="http://localhost/purcheasy/phones.html?dir=asc&order=name">Name</option>
<option value="http://localhost/purcheasy/phones.html?dir=asc&order=price">Price</option>
</select>
</div>
答案 1 :(得分:1)
您可以将JSON转换为字典,如Birendra提出的上述链接中所述。然后假设jsonDict是你的json解析字典。然后,您可以使用jsonDict.keys
收集所有密钥。
答案 2 :(得分:1)
我用过,
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)
}
}
答案 3 :(得分:0)
您需要使用NSJSONSerialization
类以json格式转换(例如转换为字典),然后从中获取所有键。
答案 4 :(得分:0)
使用Swift 4.2进行测试以获取第一个键或键列表:
此“单线”将返回第一个键,如果只有一个,则仅返回键。
let firstKey: String = (
try! JSONSerialization.jsonObject(
with: data,
options: .mutableContainers
) as! [String: Any]).first!.key
这将获得所有键的列表以及字符串数组。
let keys: [String] = [String] ((
try! JSONSerialization.jsonObject(
with: data,
options: .mutableContainers
) as! [String: Any]).keys)
以上两个示例均按如下方式使用JSON对象
let data = """
{
"fruit" : ["apple","orange"],
"furnature" : ["bench","chair"]
}
""".data(using: .utf8)!