我是Swift的新手,如果这个问题听起来太傻,请原谅我。 我试图从字典数组输出创建一个JSON对象,它必须在每个实体之后有一个Curly Brackets(" {}")而不是方括号(" []")。我的代码如下。
import UIKit
var locations = Array<Dictionary<String, String>>()
var myLocations = ["pqr","xyz"]
myLocations.forEach {_ in
var dictionary = Dictionary<String, String>()
dictionary["string1"] = "hello"
dictionary["string2"] = "world"
locations.append(dictionary)
}
print(locations)
输出到: - [[&#34; string2&#34;:&#34; world&#34;,&#34; string1&#34;:&#34; hello&#34; ],[&#34; string2&#34;:&#34; world&#34;,&#34; string1&#34;:&#34; hello&#34;]] \ n
但是我需要它: - [{&#34; string2&#34;:&#34; world&#34;,&#34; string1&#34;:&#34; hello&#34; },{&#34; string2&#34;:&#34; world&#34;,&#34; string1&#34;:&#34; hello&#34;}] \ n
我知道这样做的一种方法是使用过滤器数组,但我怀疑可能有一种更简单的方法,在搜索Swift上的各种文档之后我无法找到它。你能帮帮我吗?提前谢谢。
答案 0 :(得分:2)
输出
[["string2": "world", "string1": "hello"], ["string2": "world", "string1": "hello"]]
因为这是Swift词典的Swift数组。
要将此对象转换为JSON,请不要自行解析和替换字符,而是使用NSJSONSerialization:
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(locations, options: [])
if let jsonString = String(data: jsonData, encoding: NSUTF8StringEncoding) {
print(jsonString)
}
} catch {
print(error)
}
打印:
[{ “字符串2”: “世界”, “字符串1”: “你好”},{ “字符串2”: “世界”, “字符串1”: “你好”}]
我们使用dataWithJSONObject
将您的Swift对象转换为JSON 数据,然后我们使用String(data:, encoding:)
将此JSON数据转换为JSON 字符串