如何使用 SwiftyJSON 将数组转换为字典?

How to convert array to dictionary with SwiftyJSON?

我重组了端点 return 并希望我的前端代码以旧方式工作。我在数组中有 3 个值,想将其转换为字典 [Int64: JSON]。我正在使用 SwiftyJSON。谢谢。

我有:

let time = JSON(rawValue: x)!.int64Value                   //1614748500
let like = point["val"].int64Value                         //91
let dislike = JSON.init(integerLiteral: trend.rawValue)    //3

// po print(array) [1614748500, 91, 3]
                    0 element

// po arrray ▿ 3 elements
             - 0 : 1614748500
             - 1 : 91
             - 2 : 3

我想要的样子

 //  po print(array) [1614748500: [
                 1614748500,
                 91,
                 3
                 ]
                 0 element

 //  po array ▿ 1 elements
              ▿ 0 : 2 elements
              - key : 1614748500
              ▿ value : [
                1614748500,
                91,
                3
               ]
             ▿ rawArray : 3 elements
             - 0 : 1614748500
             - 1 : 91
             - 2 : 3
             - rawDictionary : 0 elements
             - rawString : ""
             - rawNumber : 0
             - rawNull : <null>
             - rawBool : false
             - type : SwiftyJSON.Type.array
             - error : nil

所以您有一个包含 3 个元素的数组,并希望将其转换为包含三个键值对的字典。为此,您首先要决定要使用的键。可以是“第一”、“第二”和“第三”,但希望你有更多有意义的键。然后你这样转换:

let array = [“string1”, “string2”, “string3”]
let dict = [“first”: array[0], “second”: array[1], “third”: array[2]]

就是这样。 JSON.

真的不需要第三方库

而[Int64:JSON]当然不是字典。字典 = key/value 对。对于 JSON 字典,键必须是字符串。

花了我一段时间终于弄明白了。

var dict = [Int64: JSON]()

let time = JSON(rawValue: x)!.int64Value                   //1614748500
let like = point["val"].int64Value                         //91
let dislike = JSON.init(integerLiteral: trend.rawValue)    //3

dict[time] = JSON(arrayLiteral: time, like, dislike)

 po print(dict)
    [1614748500: [
    1614748500,
    91,
    3
    ]