json - 如何使用 Swifty 动态创建具有多个键和值的 json 对象

标签 json swift swifty-json

我想使用 Swifty 创建一个 json 对象,我可以将其解析为这种格式的字符串:

{
    "store": {
        "id": "test",
        "name": "store1",
        "type": "retail"
    }
}

我想在单独的 JSON 对象中分阶段完成(最终在单独的函数中),然后将对象连接在一起。当我尝试使用以下代码时,我得到一个数组:

func jsonTest()->String {
    var idJson = JSON(["id":"test"])
    var nameJson = JSON(["name":"store1"])
    var typeJson = JSON(["type":"retail"])
    var storeJson = JSON([idJson, nameJson, typeJson])
    return storeJson.rawString()!
}

结果:

{
    "store": [
        {
            "id": "test"
        },
        {
            "name": "store1"
        },
        {
            "type": "retail"
        }
    ]
}

最佳答案

你得到一个数组的原因是因为你在这一行中传递了一个数组:

var storeJson = JSON([idJson, nameJson, typeJson])

您传入一个数组,其中包含用于 idnametype 的单独对象,所以这就是您得到的结果。

你应该做的是为商店创建一个字典,并在将它传递给 JSON 函数之前设置所有值:

var store = [String: String]()
store["id"] = "test"
store["name"] = "store1"
store["type"] = "retail"
var storeJson = JSON(store)

关于json - 如何使用 Swifty 动态创建具有多个键和值的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676216/

相关文章:

multithreading - Swift dispatch_after throwing is not a prefix unary operator 错误

javascript - 删除 json 对象中的数组项的问题

javascript - 如何过滤对象数组以匹配列表?

swift - 在 SwiftUI 中将可观察对象的通知更改为嵌套对象

ios - AVVideoCompressionProperties按键崩溃

json - 显示从 Firebase 的 JSON 解析的数据。无法摆脱可选的字符串打印

swift - TableView 在使用两个嵌套的 alamofire 请求滚动之前不会显示数据

ios - 调用 API 时不显示 UICollectionView 单元格

PHP json_decode整数和 float 到字符串

json - 格式化PSCustomObject以转换为JSON