【发布时间】:2020-12-02 04:14:32
【问题描述】:
在操场上,我使用以下代码将字典数据转换为 创建 JSON 文件。它有效,但并不完全符合我的要求。
var topLevel: [AnyObject] = []
var myDict : [String:Any] = [:]
myDict ["label"] = "label: carrots" as AnyObject
myDict ["coordinates"] = [ "x: 120" as AnyObject,
"y: 164" as AnyObject,
"width: 230" as AnyObject,
"height: 119" as AnyObject]
let jsonData = try JSONSerialization.data(withJSONObject: myDict, options: .prettyPrinted)
let fileManager = FileManager.default
let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let jsonUrl = url.appendingPathComponent("test.json")
try? jsonData.write(to: jsonUrl )
当我们打开创建的 test.json 文件时,我们会看到。
{
"label" : "label: carrots",
"coordinates" : [
"x: 120",
"y: 164",
"width: 230",
"height: 119"
]
}
但我们想看到的是,坐标后面不是“{”,而是“[”。
{
"label": "carrots",
"coordinates": {
"x": 120
"y": 164
"width": 230
"height": 119
}
【问题讨论】:
-
你写了
myDict ["coordinates"] = something,但有些东西是数组,而不是字典,因此是 [] 而不是 {}""。另外,您希望"x": 120,或"x": "120",而不是"x: 120",在预期结果中: >let coordinates: [String: Any] = ["x": 120, "y": 164, "width": 230, "height": 119"]; myDict["coordinates] = coordinates但您的预期结果不是有效的JSON,所以先澄清一下。
标签: ios json swift dictionary