如何在swift 4中从多个字典编写多个JSON对象

如何在swift 4中从多个字典编写多个JSON对象,json,swift,file-io,Json,Swift,File Io,假设我有两本这样的词典: let dict = ["2": "B", "1": "A", "3": "C"] let dict2 = ["K": "V","N": "1","A": "12"] let dict = ["2": "B", "1": "A", "3": "C"] let dict2 = ["K": "V","N": "1","A": "12"] if let jsonData = try? JSONSerialization.data(withJSONObject: dict,

假设我有两本这样的词典:

let dict = ["2": "B", "1": "A", "3": "C"]
let dict2 = ["K": "V","N": "1","A": "12"]
let dict = ["2": "B", "1": "A", "3": "C"]
let dict2 = ["K": "V","N": "1","A": "12"]

if let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: [JSONSerialization.WritingOptions.sortedKeys,JSONSerialization.WritingOptions.prettyPrinted]){
    try? jsonData.write(to: URL(fileURLWithPath: <filepath>), options: Data.WritingOptions.atomic)
}
我想创建一个JSON对象,并将其写入文件:

{
    ["2":"B", "K":"V"],
    ["N":"1", "1":"A"],
    ["3":"C", "A":"12"]
}
我有这样一个swift代码:

let dict = ["2": "B", "1": "A", "3": "C"]
let dict2 = ["K": "V","N": "1","A": "12"]
let dict = ["2": "B", "1": "A", "3": "C"]
let dict2 = ["K": "V","N": "1","A": "12"]

if let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: [JSONSerialization.WritingOptions.sortedKeys,JSONSerialization.WritingOptions.prettyPrinted]){
    try? jsonData.write(to: URL(fileURLWithPath: <filepath>), options: Data.WritingOptions.atomic)
}
let dict=[“2”:“B”,“1”:“A”,“3”:“C”]
让dict2=[“K”:“V”,“N”:“1”,“A”:“12”]
如果让jsonData=try?JSONSerialization.data(带jsonObject:dict,选项:[JSONSerialization.WritingOptions.sortedKeys,JSONSerialization.WritingOptions.prettypted]){
try?jsonData.write(to:URL(fileURLWithPath:),选项:Data.WritingOptions.atomic)
}

但是这段代码只写第一本字典的内容。非常感谢您的帮助。

您需要的输出是一系列字典

    let dict = ["2": "B", "1": "A", "3": "C"]
    let dict2 = ["K": "V","N": "1","A": "12"] // THIS SHOULD BE ["N": "1", "K": "V", "A": "12"]


   // convert to array
    var array1 = [[String:String]]()
    dict.map{array1.append([$0.key:$0.value])}

    var array2 = [[String:String]]()
    dict2.map{array2.append([$0.key:$0.value])}

    print(array1)
    print(array2)
    // Merge both array's dictionary 
    var finalArray = [[String:String]]()
    for i in 0..<array1.count {
        var dict = array1[i]
        dict.merge(array2[i]) {$1}
        finalArray.append(dict)
    }
    print(finalArray)
let dict=[“2”:“B”,“1”:“A”,“3”:“C”]
让dict2=[“K”:“V”,“N”:“1”,“A”:“12”]//这应该是[“N”:“1”,“K”:“V”,“A”:“12”]
//转换为数组
var array1=[[String:String]]()
dict.map{array1.append([$0.key:$0.value])}
var array2=[[String:String]]()
dict2.map{array2.append([$0.key:$0.value]))
打印(阵列1)
打印(array2)
//合并两个数组的字典
var finalArray=[[String:String]]()

对于0中的i..但此代码只写入第一个字典的内容,因为没有编写以所需格式转换这两个dict的代码基于两个字典构建新对象的确切规则是什么?这远不是显而易见的。我在stack overflow和其他网站上搜索我的答案,但找不到任何答案。然后我试图根据现有答案修改代码,但效果不太好。