You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift问题:JSON对象的idQty字段仅保留[Int:Int]字典最后一条目

解决JSON对象中idQty字段仅保留最后一条目问题

嘿,我一眼就看出问题大概率出在你处理idQty字典的循环逻辑上!你应该是在循环里每次都直接给idQty重新赋值整个字典,而不是往已有的字典里添加键值对,导致之前的条目被一次次覆盖,最后就只剩最后一条啦。

先看错误的典型写法(模拟你的代码逻辑):

# 错误示例:每次循环都覆盖整个idQty字典
idQty = {}
for item in your_data_list:
    item_id = item["id"]
    item_qty = item["qty"]
    # 这里每次都新建一个只有当前键值对的字典,替换掉之前的idQty
    idQty = {item_id: item_qty}

# 最后构建JSON时,idQty自然只有最后一条数据
json_obj = {
    "otherField": "正常内容",
    "idQty": idQty
}

改成正确的写法就搞定了:

只需要把循环里的赋值方式改成往字典中添加/更新键值对,而不是替换整个字典:

# 正确示例:逐步往idQty字典中添加条目
idQty = {}
for item in your_data_list:
    item_id = item["id"]
    item_qty = item["qty"]
    # 用[key] = value的方式,把当前条目加入字典,不会覆盖已有内容
    idQty[item_id] = item_qty

# 此时idQty已经包含所有键值对,再放进JSON就正常了
json_obj = {
    "otherField": "正常内容",
    "idQty": idQty
}

补充说明:

如果你的代码是在循环里直接构建整个JSON对象(比如每次循环都给json_obj["idQty"]赋值新字典),那也要调整成先把idQty字典构建完整,再一次性放到JSON对象里,避免重复覆盖。

这样处理后,idQty字段就能保留所有的键值对啦!

内容的提问来源于stack exchange,提问作者JamMan9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:24:34