var test = [String : String] ()
test["title"] = "title"
test["description"] = "description"
let encoder = JSONEncoder()
let json = try? encoder.encode(test)
Run Code Online (Sandbox Code Playgroud)
如何查看的输出json?
如果我print(json)唯一得到的是Optional(45 bytes)
该encode()方法返回Data包含UTF-8编码的JSON表示形式。因此,您可以将其转换回字符串:
var test = [String : String] ()
test["title"] = "title"
test["description"] = "description"
let encoder = JSONEncoder()
if let json = try? encoder.encode(test) {
print(String(data: json, encoding: .utf8)!)
}
Run Code Online (Sandbox Code Playgroud)
输出:
{“ title”:“ title”,“ description”:“ description”}
在 Swift 4 中,String有一个名为init(data:encoding:). init(data:encoding:)有以下声明:
init?(data: Data, encoding: String.Encoding)
Run Code Online (Sandbox Code Playgroud)
返回
String通过data使用给定的将给定转换为 Unicode 字符而初始化的encoding。
以下 Playground 片段显示了如何使用String init(data:encoding:)初始化程序来打印 JSON 数据内容:
import Foundation
var test = [String : String]()
test["title"] = "title"
test["description"] = "description"
let encoder = JSONEncoder()
if let data = try? encoder.encode(test),
let jsonString = String(data: data, encoding: .utf8) {
print(jsonString)
}
/*
prints:
{"title":"title","description":"description"}
*/
Run Code Online (Sandbox Code Playgroud)
使用JSONEncoder.OutputFormattingset to 的替代方法prettyPrinted:
import Foundation
var test = [String : String]()
test["title"] = "title"
test["description"] = "description"
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
if let data = try? encoder.encode(test),
let jsonString = String(data: data, encoding: .utf8) {
print(jsonString)
}
/*
prints:
{
"title" : "title",
"description" : "description"
}
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |