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

使用nlohmann json库插入对象到对象时生成数组,如何解决?

问题解决方法
  • 核心问题:你用push_back操作的是JSON数组,但你实际需要的是JSON对象(键值对结构),所以才会生成数组而非预期的嵌套对象。
  • 正确写法:
    首先确保playersSkins是JSON对象类型(初始化时指定为对象):
    nlohmann::json playersSkins = nlohmann::json::object();
    
    然后用赋值语法添加键值对:
    playersSkins[playerName] = {{"color", "#000"}};
    
    或者使用emplace方法:
    playersSkins.emplace(playerName, nlohmann::json{{"color", "#000"}});
    
  • 原代码错误原因:push_back是JSON数组的成员函数,当你调用它时,playersSkins会被隐式转为数组类型,最终生成数组结构,而非你需要的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:09:30