SwiftUI实战之JSON和Dictionary字典之间互相转换(教程含源码)

JSON是我们日常中最常使用的数据格式,SwiftUI里面如何将JSON转换成Dictionary,又如何将Dictionary字典转换为JSON格式呢?本文将给您提供最优的解决方案和代码

本文价值与收获

看完本文后,您将能够作出下面的界面

Jietu20200426-131812.gif

看完本文您将掌握的技能

  • 掌握JSON转Dictionary字典
  • 掌握Dictionary转JSON
  • 掌握Dicctionary转String
  • 掌握SwiftUI多行文本输入

JSON 简介 (高手可以掠过)

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON 格式

下面我们看看JSON长成什么样子

[
 {
    "category" : "QQ3365059189",
    "city" : "Eaking",
    "id" : 1007,
    "park" : "Charley Rivers National Preserve",
    "coordinates" : {
      "longitude" : -143.12258600000001,
      "latitude" : 65.350020999999998
    },
    "imageName" : "yukon_charleyrivers",
    "name" : "Charley Rivers",
    "state" : "Alaska"
  }
]

Dictionary字典

Dictionary字典用于存储key-value的容器。字典是哈希表的类型,提供对它包含的条目的快速访问。表中的每个条目都使用其键进行标识,该键是可哈希类型(如字符串或数字)。您可以使用该键检索相应的值,该值可以是任何对象。在其他语言中,类似的数据类型称为哈希或关联的数组。

dictionary初始化

1、数据初始化

var responseMessages = [200: "OK",
                        403: "Access forbidden",
                        404: "File not found",
                        500: "Internal server error"]

2、空值初始化

var emptyDict: [String: String] = [:]

获取和设置数值

1、获取数值

print(responseMessages[200])

2、遍历数据

let httpResponseCodes = [200, 403, 301]
for code in httpResponseCodes {
    if let message = responseMessages[code] {
        print("Response \(code): \(message)")
    } else {
        print("Unknown response \(code)")
    }
}
// Prints "Response 200: OK"
// Prints "Response 403: Access Forbidden"
// Prints "Unknown response 301"

3、设置数值

responseMessages[301] = "Moved permanently"
print(responseMessages[301])
// Prints "Optional("Moved permanently")"

4、通过nil删除数据

responseMessages[404] = "Not found"
responseMessages[500] = nil
print(responseMessages)
// Prints "[301: "Moved permanently", 200: "OK", 403: "Access forbidden", 404: "Not found"]"

5、快速排序

var interestingNumbers = ["primes": [2, 3, 5, 7, 11, 13, 17],
                          "triangular": [1, 3, 6, 10, 15, 21, 28],
                          "hexagonal": [1, 6, 15, 28, 45, 66, 91]]
for key in interestingNumbers.keys {
    interestingNumbers[key]?.sort(by: >)
}

print(interestingNumbers["primes"]!)
// Prints "[17, 13, 11, 7, 5, 3, 2]"

代码实现

1、转换代码

你可能感兴趣的:(SwiftUI实战之JSON和Dictionary字典之间互相转换(教程含源码))