gpt4 book ai didi

json - 使用 swift 4 创建嵌套 json 的最优雅的方法是什么?

转载 作者:行者123 更新时间:2023-11-28 15:09:36 25 4
gpt4 key购买 nike

从这种只有一个参数的结构中创建 JSON 的最优雅的方法是什么

    struct SessionStorage: Encodable {
var value: String

func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
/// the magic
}

enum CodingKeys: String, CodingKey {
case params
}
}

进入这个 JSON 字符串?

{"params": {"value": "{value}"}}

我不想创建嵌套结构。

最佳答案

两种方式:

  1. 将字典编码为[String: SessionStorage]

    struct SessionStorage: Encodable {
    var value: String
    }

    let session = SessionStorage(value: "Foo")

    do {
    let jsonData = try JSONEncoder().encode(["params" : session])
    print(String(data: jsonData, encoding: .utf8)!)
    } catch { print(error) }
  2. 使用信封结构

    struct Envelope : Encodable {
    let params : SessionStorage
    }


    struct SessionStorage: Encodable {
    var value: String
    }

    let envelope = Envelope(params : SessionStorage(value: "Foo"))

    do {
    let jsonData = try JSONEncoder().encode(envelope)
    print(String(data: jsonData, encoding: .utf8)!)
    } catch { print(error) }

恕我直言,这不是优雅的问题,而是效率的问题。优雅在于不指定 encode(toCodingKeys 😉

关于json - 使用 swift 4 创建嵌套 json 的最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com