考虑以下示例,我的来源是

    Json::Value root;
    root["id"]=0;
            Json::Value text;
            text["first"]="i";
            text["second"]="love";
            text["third"]="you";
    root["text"]=text;
    root["type"]="test";
    root["begin"]=1;
    root["end"]=1;
    Json::StyledWriter writer;
    string strJson=writer.write(root);
    cout<<"JSON WriteTest" << endl << strJson <<endl;

我以为我会按行的顺序编写 json 字段。相反,结果是:
JSON WriteTest
{
   "begin" : 1,
   "end" : 1,
   "id" : 0,
   "text" : {
      "first" : "i",
      "second" : "love",
      "third" : "you"
   },
   "type" : "test"
}

我想要 json 格式是
JSON WriteTest
{
   "id" : 0,
   "text" : {
      "first" : "i",
      "second" : "love",
      "third" : "you"
   },
   "type" : "test"
   "begin" : 1,
   "end" : 1,
}

如何编写 Json 订单?

最佳答案

不,我认为你不能。 JsonCpp 将其值保存在 std::map<CZString, Value> 中,该代码始终按 CZString 比较排序。所以它不知道你添加项目的原始顺序。

关于c++ - 以 jsoncpp (c++) 编写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30837519/

10-15 03:16