gpt4 book ai didi

c++ - 将 unsigned char * 转换为 json,jsonspp C++

转载 作者:行者123 更新时间:2023-11-30 03:41:22 27 4
gpt4 key购买 nike

我有一个 unsigned char 数组保存数据,我想将其存储到一个 Json 对象中。如何做呢?使用 jsoncpp 和 C++11。声明

rootL1["CurrentValue"] = userInfo->hashCred;

不起作用,反过来它在 json 中存储为 bool 而不是未签名的数据。

最佳答案

如果您可以查看 jsoncpp 的文档 Value类(我假设rootL1是这个类型,operator[]返回相同的类型),你会看到没有unsigned char* 将接受您的 userInfo->hashCred 数组的转换构造函数。有一个构造函数接受 const char* 但没有从 unsigned char*const char* 的隐式转换,最接近的是隐式的将指针转换为您选择的 bool。

解决方案应该是使用接受const char* 的转换构造函数。你首先应该想想为什么需要unsigned char*,也许你可以使用char类型的数组?如果不能,那么您可以尝试将 unsigned char* 转换为 char*:

rootL1["CurrentValue"] = reinterpret_cast<char *>(userInfo->hashCred)

但这可能会导致各种问题,具体取决于您实际存储在数组中的内容以及 jsoncpp 在幕后使用此数据执行的操作。

我建议您将 hashCred 视为二进制数据并将其编码为 char 数组。然后存储在 jsoncpp 中的值。有关详细信息,请查看此处:Binary data JSONCPP

jsoncpp test code您还可以找到一些有关如何将二进制数据存储为值的示例。

关于c++ - 将 unsigned char * 转换为 json,jsonspp C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com