[Swift通天遁地]七、数据与安全-(3)Cocopods的安装和开源类库对JSON的解析

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10300938.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

目录:[Swift]通天遁地Swift

本文将演示Cocopods的安装和开源类库对JSON的解析。

首先打开terminal(终端),并在terminal输入安装语句:

sudo gem install cocoa pods

按下【Enter】键。

Password:

在密码提示符的右侧,输入当前账户的密码。

插件安装之后,可以通过输入关键词,查找需要安装的第三方类库。

pod search AFNetworking

terminal(终端)列出了所有可以安装的相关类库,只需要复制Pod语句即可。

现在来查看已经安装的Pod的版本。

pod --version

如果需要执行某个Pod文件,

使用cd命令切换切换至配置文件所在的文件夹,

该文件夹下拥有一个已经设置好的Pod配置文件,

现在输入安装语句,安装配置文件中的第三方类库。

pod install --no-repo-update

安装完成之后,最小化terminal(终端)。

首先确保在项目中已经安装了所需的第三方库。

点击【Podfile】,查看安装配置文件。

1 platform :ios, '12.0'
2 use_frameworks!
3 
4 target ‘DemoApp' do
5     pod 'SwiftyJSON'
6 end

根据配置文件中的相关配置,安装第三方库。

然后点击打开【DemoApp.xcworkspace】项目文件。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

 1 import UIKit
 2 //引入已经安装的第三方类库
 3 import SwiftyJSON
 4 
 5 class ViewController: UIViewController {
 6 
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9         // Do any additional setup after loading the view, typically from a nib.
10         
11         //获得项目中待解析文档的存储路径。
12         let path = Bundle.main.path(forResource: "menu", ofType: "json")
13         //加载指定路径的文档,并将结果保存在数据常量中。
14         if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path!))
15         {
16             //使用加载的数据,生成一个JSON对象。
17             let json = JSON(data: jsonData)
18             //通过对象的描述方法,在控制台输出该对象包含的内容。
19             print(json.description)
20             
21             //获得并输出菜单键下的指定子键的值
22             print(json["menu"]["id"])
23             //获得并输出菜单键下的指定子键的值
24             print(json["menu"]["value"])
25             //在菜单键的内部,包含一个由数组组成的子键序列,
26             //这里获得并输出数组中的第一个元素。
27             print(json["menu"]["menuitem"][0])
28             //输出数组中的第一个元素的名称子键的值。
29             print(json["menu"]["menuitem"][0]["name"])
30             //输出数组中的第一个元素的点击事件子键的值。
31             print(json["menu"]["menuitem"][0]["onclick"])
32             print("--------------------------------------")
33             
34             //获得子键序列,并存储在一个数组中。
35             if let arr = json["menu"]["menuitem"].array
36             {
37                 //使用循环语句,对存储在数组中的元素进行遍历
38                 for subItem in arr
39                 {
40                     //依次输出名称和点击事件两个子键所对应的值。
41                     print(subItem["name"])
42                     print(subItem["onclick"])
43                 }
44             }
45             //输出一个分隔线日志。
46             print("--------------------------------------")
47             
48             //使用第三方类库,快速创建自定义的JSON对象
49             var jsonInt: JSON =  [1,2,3]
50             //通过下标可以快速更改元素的值。
51             jsonInt[0] = 100
52             jsonInt[5] = 200
53             //在控制台输出JSON对象的详细信息
54             print("jsonInt:(jsonInt)")
55             
56             //JSON对象可以包含多种类型的键值对。
57             var jsonData: JSON =  ["name": "Jack", "age": 25, "list": ["a", "b", "c", ["what": "this"]]]
58             //通过下标可以快速定位和修改某个元素。
59             jsonData["list"][3]["what"] = "that"
60             print("jsonData:(jsonData)")
61         }
62     }
63 
64     override func didReceiveMemoryWarning() {
65         super.didReceiveMemoryWarning()
66         // Dispose of any resources that can be recreated.
67     }
68 }
原文地址:https://www.cnblogs.com/strengthen/p/10300938.html