問題タブ [nlohmann-json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
769 参照

c++ - 無効な UTF8 エラーが発生するのはなぜですか?

C++ コードから Java で実行されている REST サービスに JSON を送信しようとしています。Visaul Studio 2019、nlohmann/json ライブラリを使用してオブジェクトをシリアル化し、libcurl を使用して HTTP 要求を作成しています。

シリアライズしたい次のオブジェクトがあります。

この LogType を使用して、AliveLog の一部のメンバーを入力します (Java 列挙型に非常によく似ています)。そして、次を使用してシリアル化します。

この関数を呼び出すと、"Çevrimdışı" があるはずの場所に疑問符と ½ が表示されます。

また、REST サービスは例外 JSON parse error: Invalid UTF-8 middle byte 0xdd; をスローします。

コンパイラのコマンド ライン オプションに /utf8 と /validate-charset を設定しようとしましたが、役に立ちませんでした。

引数なしで j.dump() を使用すると、「JSON 値内に格納されている文字列が UTF-8 でエンコードされていない場合は type_error.316」という例外がスローされます。私のテキスト エディタでは、「署名なしで UTF-8 エンコーディングを自動検出する」が選択されています。

この同じコードは、Java で記述された問題なく機能します。私は、その C++ バージョンを作成しようとしています。

編集: LogType と AliveLog に関する詳細情報を追加しました

0 投票する
0 に答える
369 参照

c++ - パッチの複数レベルの json を nlohmann ライブラリとマージする方法

私は次のようなパスのリストを持っています:"blabla/bleble/blibli", "blabla/blibli/bleble" 私はこれに1つを変換することに成功しました:{"blabla":{"bleble":{"blibli":null}}}この関数で:

しかし、今はそれをマージしたいのですが、うまくいきません。私はもう試した:

結果は役に立たず、マージが何もしないようです。 nlohmann::json ライブラリの merge_patch メソッドを試しましたが、仕事の半分を行います:

期待される結果:

完全な json をマージできるかどうか知っていますか?

ここにコード全体があります:https://pastebin.com/Qyc8EQN0