データを保持する符号なしchar配列があります。これをJsonオブジェクトに格納します。どのようにそれを行うことができますか? jsoncppとC++を使用する11。 声明unsigned char *をjsonに変換する、jsonspp C++
rootL1["CurrentValue"] = userInfo->hashCred;
は動作しません、今度はそれが代わりに符号なしデータのJSONでブール値として格納されています。
データを保持する符号なしchar配列があります。これをJsonオブジェクトに格納します。どのようにそれを行うことができますか? jsoncppとC++を使用する11。 声明unsigned char *をjsonに変換する、jsonspp C++
rootL1["CurrentValue"] = userInfo->hashCred;
は動作しません、今度はそれが代わりに符号なしデータのJSONでブール値として格納されています。
あなたはjsoncpp Valueクラスのドキュメントの中に見ることができる場合(私はrootL1
はこのタイプのものであり、operator[]
は同じ型を返すと仮定)、あなたはあなたのuserInfo->hashCred
配列を受け入れるだろう何unsigned char*
変換コンストラクタが存在しないことがわかります。 const char*
を受け入れるコンストラクタが1つありますが、unsigned char*
からconst char*
への暗黙的な変換はありません。最も近いのは、あなたのケースで選択されているboolへのポインタの暗黙的な変換です。
ソリューションは、const char*
を受け入れる変換コンストラクタを使用する必要があります。最初にunsigned char*
が必要な理由を考える必要があります。char
の配列を使用できますか?あなたはカントなら、あなたはchar*
にunsigned char*
をキャストしてみてください:
rootL1["CurrentValue"] = reinterpret_cast<char *>(userInfo->hashCred)
が、これはあなたが実際にあなたの配列に格納しているし、また、このデータとボンネットの下に何jsoncppをやっていることに応じて、あらゆる種類の問題を引き起こす可能性があります。
hashCredをバイナリデータとして扱い、それをchar
配列にuuencodeすることをお勧めします。それをjsoncppの値に格納します。詳細はこちらをご覧ください:Binary data JSONCPP
jsoncpp test codeには、バイナリデータを値として保存する方法の例があります。
これを行う方法の1つは、データをjson配列に変換することです – sach