加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift开发:使用SwiftyJSON解析JSON数据

发布时间:2020-12-14 06:04:29 所属栏目:百科 来源:网络整理
导读:1 下载配置SwiftyJSON GitHub 地址: https: //github.com/SwiftyJSON/SwiftyJSON 使用配置:直接将 SwiftyJSON.swift 添加到项目中即 2 解析案例文件 demo.json 放置项目中,json内容如下 {"system":{"id":754717486,"model":"32C","max":32,"max_out":32,"

1 下载配置SwiftyJSON

GitHub地址:https://github.com/SwiftyJSON/SwiftyJSON

使用配置:直接将 SwiftyJSON.swift添加到项目中即


2 解析案例文件

demo.json 放置项目中,json内容如下

{
	"system":	{
		"id":	754717486,"model":	"32C","max":	32,"max_out":	32,"run":	"Run 003:00:31","temp":	"20~35","wcolor":	"#66ff00","temp_war":	false,"mark":	1766,"ahpd":	1,"uhpd":	1,"cont":	1,"ip":	"192.168.88.229","port":	1001,"update":	true,"lang":	0
	},"info":	{
		"Sync":	false,"port":	[{
				"io":	1,"pow":	0,"SName":	"SYSTEM VGAn ","type":	2,"power":	1,"vsw":	7,"Iasw":	7,"Easw":	7,"usw":	0,"flag":	false,"hpd":	"HPD OFF","res":	"Power off","vsd":	"N/A","v_hdcp":	"N/A","vmode":	1,"vaudio":	1,"vhdcp":	1,"EName":	"SYSTEM EDIDn"
			},{
				"io":	0,"pow":	1,"SName":	"SYSTEM EDIDn"
			},"SName":	"SHARP HDMIn "
			},"SName":	"U28D590n    "
			},{
				"io":	1,"SName":	"Skyworth UHD","type":	12,"res":	"NoSignal","vaudio":	0,"vhdcp":	0,"SName":	"LG TVn      "
			},"SName":	"SYSTEM EDIDn","type":	1,{
				"io":	2,"pow":	2,"type":	4,"res":	"Auto off","EName":	"NULLr"
			},"pow":	1
			},"EName":	"43PUF6056/T3"
			},"type":	134,"EName":	"U28E590n    ","s_res":	1,"s_out":	0,"s_arrt":	0,"s_brightness":	50,"s_contrast":	50,"s_saturability":	50,"s_sharpness":	50,"s_rv":	0,"s_gv":	0,"s_bv":	0
			},"pow":	1
			}]
	}
}

3 开始解析

只有部分解析,其他解析结合demo.json就知道怎么解析了

 override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
        
        let path = Bundle.main.path(forResource: "demo",ofType: "json");
        
        let jsonData = NSData(contentsOfFile: path!);
        
        do{
            
            let json = try JSON(data: jsonData! as Data);
            
            //system
            let system_array = json["system"];
            print("id: ((system_array["id"].int)!)");
            print("model: ((system_array["model"].string)!)");
            
            //info
            let info_array = json["info"];
            
            // info sync
            print("sync: ((info_array["Sync"].bool)!)");
            
            
            //info port
            let info_port_array = info_array["port"];
            
            for i in 0..<info_port_array.count {
                let io = info_port_array[i]["io"].int!;
                print("io:(io)");
            }
            
        }
        catch{
            print("error ");
        }
    }

4 效果图

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读