Swift 中的数组到 JSON 数组

Posted

技术标签:

【中文标题】Swift 中的数组到 JSON 数组【英文标题】:Array to JSON Array in Swift 【发布时间】:2017-04-20 17:38:28 【问题描述】:

我有两个整数数组,我喜欢将它发送到我的 mongodb 数据库。当我将它作为参数发送到 Alamofire 中的数据库并且在代码中 data_array 1 和 2 指的是 Int 数组时。

  let parameters_post: Parameters = [
        "sensor_id": "ecg_raw",
        "member_id": "58d3f509e48f4ca90dd218e4",
        "esignal": "3.5V",
        "ts": "emre",
        "value1" : data_array1,
        "value2" : data_array2
    ]

     Alamofire.request("https://api.mlab.com/api/1/databases/mysignal/collections/Cecgraw?apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI", method: .post, parameters: parameters_post,encoding: JSONEncoding.default, headers: nil).responseData response in
        print(response.request)
        print(response.response)
        print(response.result)
    

但是,在 mongodb 中是这样看的。我认为这是不正确的;


"_id": 
    "$oid": "58f9d0e7c2ef162ad3000cb6"
,
"sensor_id": "ecg_raw",
"member_id": "58d3f509e48f4ca90dd218e4",
"value2": [
    [
        240,
        279,
        555,
        547,
        504
    ]
],
"value1": [
    [
        135,
        91,
        101,
        115,
        106
    ]
],
"esignal": "3.5V",
"ts": "emre"

【问题讨论】:

【参考方案1】:

正如您所说,您希望将密钥 value 的值发送为 [(Int, Int)]。但实际上你发送的是[[(Int, Int)]],这意味着array of array of tuples(希望你需要发送array of tuples)。

尝试发送下面的列表,

let parameters_post: Parameters = [
    "sensor_id": "ecg_raw",
    "member_id": "58d3f509e48f4ca90dd218e4",
    "esignal": "3.5V",
    "ts": "emre",
    "value" : data_array
]

谢谢。

【讨论】:

你好,我改变了结构。你能检查一下新的吗?我有两个整数值,我决定将它们存储在不同的数组中。但仍然无法将其写入数据库。 您遇到什么错误?什么是示例 JSON? 其实我也不是很清楚。正如我搜索的那样,在 JSON 数组中应该像“”手镯。但在我的输出中,只有方形手链。 好的。你能告诉你遇到了什么错误吗? 我现在没有遇到任何问题。我的意思是我可以存储我给出的例子中的值,但我不确定它是否是一个数组,我是否可以获取它。

以上是关于Swift 中的数组到 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将 alamofire 返回 json 解析为 Swift 中的字符串数组?

将 SwiftyJSON 中的元素添加到 Swift 中的 URL 数组

返回一个空的 JSON 数组导致 Swift 中的越界错误

使用 Alamofire 和 Swift 返回嵌套 JSON 数组中的值

从 Json 数据中分组,其中包含 Swift 4 中的字典数组

从json响应swift中删除数组中的双引号