创建可读 JSON 字符串的最简单方法是啥?
Posted
技术标签:
【中文标题】创建可读 JSON 字符串的最简单方法是啥?【英文标题】:What is the easiest way to create readable JSON string?创建可读 JSON 字符串的最简单方法是什么? 【发布时间】:2018-01-16 12:15:51 【问题描述】:我想用新的行和制表符(或空格)绘制格式化的 JSON 字符串。
但是下面的代码产生的字符串只要一行行。
let resultString = String(data: response.data, encoding: .utf8)
有没有创建多行 JSON 字符串的默认方法?
【问题讨论】:
developer.apple.com/documentation/foundation/… 这个developer.apple.com/documentation/foundation/… 用于 Swift 4 JSONEncoder。 【参考方案1】:您可以使用JSONSerialization
的prettyPrinted
选项
do
let json = try JSONSerialization.jsonObject(with: response.data, options: []) as! [String: AnyObject]
let formattedJson = try JSONSerialization.data(withJSONObject: json, options:JSONSerialization.WritingOptions.prettyPrinted )
if let formattedString = String(data: formattedJson, encoding: .utf8)
print(formattedString)
catch
print("Error: \(error)")
至于 Swift 4 中引入的JSONEncoder
,有一个prettyPrinted
选项:
struct Foo: Codable
var bar: String
var baz: Int
let foo = Foo(bar: "gfdfs", baz: 334)
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted // This makes it formatted as multiline
let data = try encoder.encode(foo)
print(String(data: data, encoding: .utf8)!)
输出是:
"bar" : "gfdfs",
"baz" : 334
【讨论】:
以上是关于创建可读 JSON 字符串的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
将 freemarker 对象呈现为 JSON 的最简单方法是啥?
将 JSON 字符串解析为对象的最简单的 C# 函数是啥? [关闭]
将带有表格数据的 Excel 电子表格转换为 JSON 的最简单方法是啥? [关闭]