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
相关产品推荐
相关产品推荐

