由于使用網(wǎng)絡(luò)接口隔段時(shí)間就可能失效了,我在這里就自己寫個(gè)json。
json格式的數(shù)據(jù)解析太常見了,話不多說直接碼哈!
/**
* 解析json
*/
func AnalyJson() {
// 獲取json路徑
let path = Bundle.main.path(forResource: "menu", ofType: "json")
if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path!)) {
// 解析json內(nèi)容
do {
// 將2進(jìn)制數(shù)據(jù)轉(zhuǎn)化為字典對象
if let jsonObj:NSDictionary = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions()) as? NSDictionary{
// j根據(jù)鍵名獲取字典對象中的鍵值,并將鍵值轉(zhuǎn)化為另一個(gè)字典對象
if let menuDic:NSDictionary = jsonObj["menu"] as? NSDictionary{
// j根據(jù)鍵名獲得第二個(gè)字典對象的鍵值,并將z鍵值轉(zhuǎn)化為一個(gè)數(shù)組對象
if let menuItems:NSArray = menuDic["menuitem"] as? NSArray{
// 遍歷數(shù)組中的元素,并在控制臺打印輸出元素內(nèi)容
for item in menuItems {
print("item:\(item)")
}
}
}
}
} catch {
print("Error")
}
}
}
解析結(jié)果:
item:{
onclick = CreateNewDoc;
value = "\U4f60\U597d\U5440\Uff01";
}
item:{
onclick = "Create......";
value = Jack;
}
item:{
onclick = "\U70b9\U51fb\U4e86\U6211\Uff0c\U6211\U4f1a\U5bf9\U4f60\U8bf4\Uff1a";
value = "\U6211\U5f88\U597d\U7684\Uff01\U8c22\U8c22\Uff01";
}
使用第三方框架: