【问题标题】:jsoncpp write json array with only one elementjsoncpp写入只有一个元素的json数组
【发布时间】:2018-07-10 10:33:04
【问题描述】:

我在使用jsoncpp 时遇到问题。代码如下:

Json::Value content;
for ( int i=0; i < len; ++i)
{
    content["res"].append(strs[i]);
}

我的情况是,当我的字符串向量 strs 只有一个元素时,最终的 json 字符串如下:

"res":"a"

但是,我期待的是:

"res":["a"]

希望有人把我拉出来,谢谢大家!!!

【问题讨论】:

    标签: c++ arrays jsoncpp


    【解决方案1】:

    你必须将 content 初始化为一个数组,这样做:

    Json::Value content(Json::arrayValue);
    

    【讨论】:

      【解决方案2】:

      问题解决了!感谢@dani2442 和@stetoc 的帮助

      我用下面的代码运行了一个小测试:

      Json::Value root, content(Json::arrayValue);
      content.append("a");
      root["res"]=content;
      cout << root.toStyledString() <<endl;
      

      结果是:

      {
          "res" : [ "a" ]
      }
      

      【讨论】:

        【解决方案3】:

        afaik 内容应定义为 Json::arrayValue 而不是内容

        【讨论】:

        • 为什么不呢?如果他将变量声明为 Json::arrayValue 那么他的函数将正常工作
        • @stetoc 你的回答迫使我阅读了很多关于低质量答案不是答案识别的元数据。虽然我仍然认为您的答案可以改进,但我撤销了 not an answer 标志并承认我的错误。这是一个被广泛讨论的话题,并且像回旋镖一样回来,但大多数有经验的 SO 用户似乎认为与您相似的答案是有效的答案。他们仍然建议编辑和改进这些答案。
        猜你喜欢
        • 2012-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多