問題タブ [cjson]
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.
c - JSON をファイル ストリームから直接読み取って解析するための C ライブラリ
C で JSON を解析するための多くのライブラリを見てきましたが、ファイル ストリームから直接読み取って解析できるものはありません。Yajl、cjson などのすべてのそのようなライブラリの問題は、ファイル内の json ドキュメントが巨大な場合、まずそのすべてをメモリ バッファに読み込んでから、これらのライブラリによって提供される API を実行して解析する必要があることです。
多くの場合、APIは次のようになります
char* をバッファに取ります。
ファイルが非常に大きくなる可能性があり、ファイルのサイズが事前にわからないため、それを避けたいと思います。さらに、これらのライブラリは、値を取得するために実際のバッファー内のオブジェクト、配列への参照を維持するため、元のバッファーを解放できません。
ファイル ストリームから直接読み取って解析できる JSON 解析ライブラリはありますか?
c - 構造体と strcpy で malloc を使用する
という構造体の配列を作成しようとしてStatusItem
います。これは次のようになります。
また、この配列を任意のサイズにしたいので、 を使用してmalloc
います。したがって、配列は次のように定義されます。
(その後、次のようにすべての値を取得する関数に渡されます。)
の文字列値を取得しname
、上記の変数に cJSON ライブラリを使用するコードがあり、これらの変数のフィールドに格納されます。index
optional
valuestring
cJSON ライブラリに関連するすべてが正常に動作し、正しい値を返すことを確認しましたが、プログラムはstatusItems
配列に値にアクセスしたり格納したりできません。
何か案は?私は、それがmalloc
私の側での誤用を伴うことをほぼ確信しています。
c - cJSON_Print() の戻り値は、呼び出し元によって解放されるべきですか?
私はcJSONライブラリを使用しており、次のような関数があります:
この関数はメモリをリークしますか?
c - CJSON で解析された JSON の最初の数字は常に 0 です
cJSON を使用して Web サーバー上の CGI ファイルによって受信された JSON ファイルを解析しようとしていますが、JSON の最初の数字が 0 に変更され続けます。
これをテストするために使用している短いコードを作成しました。
クエリ文字列を介して JSON {"test":123, "test2":123} をこれに渡すと、プログラムは次のように出力します。
ここで何が間違っているのか、誰かが私に何が問題なのかを教えてくれたら、私はそれを大いに感謝します。
c - C LinuxでJSON応答を解析するには?
cJSON、nxjson、jsmn パーサーなどの多くのツールを使用して JSON 応答を解析しましたが、使用したツールのいずれも何らかの構造形式で出力を提供していません。以下は、文字列の JSON 応答です。
私はcJSONツールを使用しましたが、出力は以下のようになり、文字列にもなります:
しかし、上記の形式で出力したくありません。C構造体の形式で出力したい。C構造で出力を取得することは可能ですか?
c - cJSON_Print に更新された値が表示されない
Dave Gamble による cJSON を使用していますが、次の問題があります。cJSON 構造体内の値を変更してから cJSON_Print コマンドを使用すると、更新された値が取得されず、代わりにデフォルト値が取得されます。
これは私が小さなテストに使用したコードで、これらの結果が得られます。
私が間違っていることと、 cJSON_Print コマンドで正しい値を取得する方法を知っている人はいますか?