【问题标题】:how to concat integer and wstring and put them in a static char array如何连接整数和 wstring 并将它们放入静态 char 数组
【发布时间】:2019-04-02 09:43:40
【问题描述】:

C++ 新手,

目前,我有一个硬编码的 json 存储在一个 char 数组中

static CHAR data[]= "{\"id\":1, \"name\":\"test\"}";

我想在来自dynamic values的json中创建values

例如

int id = 1;

std::wstring name = "joe";

请问如何实现,谢谢

【问题讨论】:

  • 我会使用 JSON 库来创建和操作 JSON 值。 nlohmann 真的很容易使用。不过,不确定它对宽字符串的支持程度;您可能必须先自己转换为 utf-8。
  • 我用的是c++98,nlohmann只支持c++11
  • @epiphany 你考虑过 rapidjson 吗?
  • 我正在考虑使用两个 concat 值创建一个字符串,然后将其转换为 char 数组,我可以这样做吗?
  • 除非您使用的是遗留代码库,否则现在没有充分的理由不针对至少 C++11。

标签: c++


【解决方案1】:

我想这就是你要找的东西:

char * toJSON(int const id, std::string const& name)
{
    std::string json = "{\"id\":" + std::to_string(id) + ", \"name\":\"" + name + "\"}";

    char * arr = new char[json.length() + 1 /* terminating 0 */];

    strcpy_s(arr, json.length() + 1, json.c_str());

    return arr;
}

用完后别忘了删除数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多