【问题标题】:How to return json string of arrays using rapidjson如何使用rapidjson返回数组的json字符串
【发布时间】:2022-08-14 00:22:16
【问题描述】:

我有一个看起来像这样的 json 文件

{
    \"ActivityId\":\"CB8FA1DA-DCB4-40B3-9D12-2786BD89B4D4\",
    \"AdditionalParams\":{
        
    }, 

    \"Extensions\":[
        {
            \"Id\":\"1234\",
            \"IsEnabled\":false,
            \"Name\":\"Name1\"
        },
        {
            \"Id\":\"4567\",
            \"IsEnabled\":false,
            \"Name\":\"Name2\"
        },
        {
            \"Id\":\"8910\",
            \"IsEnabled\":true,
            \"Name\":\"Name3\"
        }
    ]
}

我在网上看到很多代码试图获取 IsEnabled,Name 字段(例如)。但是,我正在尝试使用rapidjson 按原样打印出扩展数组。

这是我尝试过的代码

 Document document;
    document.Parse(json);
   if (document.HasMember(L\"Extensions\")) {     
        eventPayload = document[L\"Extensions\"].GetString();
    }
  • 你对eventPayload 有什么期待? json片段的字符串表示?这不是GetString 所做的。
  • 我期待在 eventPayload 中打印出整个 Extensions 数组。虽然我了解 getstring 的作用 - 在这里,我想按原样显示整个数组,但看不到任何内置函数

标签: c++ rapidjson


【解决方案1】:

document[L"Extensions"] 不是一个字符串,它是一个数组,所以你必须首先getArray,然后用JSONIterator 遍历它,然后得到IsEnabled 的值。

此外,您不必使用L"",因为它们是普通字符串而不是宽字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多