zoukankan      html  css  js  c++  java
  • [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 }
  • 相关阅读:
    MySQL数据库优化的八种方式(经典必看)
    HTML5之应用缓存---manifest---缓存使用----HTML5的manifest缓存
    ajax方法总结
    十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))
    MySQL主从复制技术(纯干货)
    table不能遗露了tbody
    DOM 之selection
    DOM 其他一些特性
    CSSOM视图模式
    DOM 节点实例操作
  • 原文地址:https://www.cnblogs.com/strengthen/p/10300938.html
Copyright © 2011-2022 走看看