問題タブ [json-c]
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 - C での Json の解析と文字列の管理
次の機能を考慮します。
使用されます:
何が起こるのですか:
get_organization(idp_obj, &organization);
1)すべてを削除すると、正常に動作するようです。
2)すべてを削除get_display_name(idp_obj, &display_name);
すると、再び正常に動作するように見えます。
3)「そのまま」のコードではstrcpy
、メソッド内で使用されるエラーがありますget_organization
:
この驚くほど難しい言語の知識を向上させるために、この振る舞いを理解したいと思っています。
c - C を使用して Json オブジェクトに一意の要素を追加する
(学習) c を使用して、src IP を json オブジェクトに追加し、それらを json 配列に追加するミニ パケット スニファーを作成します。
pcap フィルターは問題なく動作します。現在、src ips の json オブジェクトと、この IP に送信されたパケットのカウンターを作成しようとしています。
すべての pcap コードを除外すると、次のようなループがあります。
ethernet_packet 関数内で、IP の配列を作成して、IP が既に追加されているかどうかを確認できるようにしました。
IPを取得してアレイに追加するはずだったこれまでの内容は次のとおりです。
私が抱えている問題は、オブジェクトが既存の配列に追加されず、毎回新しい配列が作成されることです。
ループの開始時にオブジェクトのタイプをチェックして、配列ではなく、追加しようとするとエラーがスローされたときにのみ初期化しようとしました。
c で 2 日以上過ごした人にはおそらく明らかですが、これを修正する方法がわかりません。
これを解決するための最良/最も効率的な方法は何ですか?
- - 編集 - -
型をチェックし、配列でない場合は初期化して動作させます。これが最善の方法であるかどうかはわかりません。
fn の完全なコードは次のとおりです。
c - json_object_object_add は既存のエントリを置き換えることができますか?
Json-C には、このぎこちなく文書化されていない参照カウントがあり、これが問題を引き起こしています。特に、子を含むオブジェクトがあり、特定の子を
json_object_object_add(parent, "child name", new_child)
.
これで の所有権が譲渡されることがわかりましたnew_child
。問題ありません。しかし、古い子供はどうですか?で手動で削除できますがjson_object_object_del
、古い子は削除されません (ただし、リークします)。したがって、次の解決策が適切な代替品であるようです。
json_object_object_add
ただし、最初の 3 つの手順を冗長にするほど が賢いかどうかは疑問です。アトミックな置換を好むため、これはより良い設計です。何らかの理由で新しい子を追加できない場合は、古い子を保持する必要があります。
c - json文字列を読み取るセグメンテーション違反
JSON文字列を読み取って印刷しようとしていますが、セグメンテーション違反(コアダンプ)が発生しています。エラーは入力文字列が原因だと思いますが、よくわかりません。
ここにコードがあります
コード:
出力されたバイナリ ファイルを valgrind で実行して、エラーを適切に確認しました
valgrind で実行中にこのエラーが発生します
c - C言語で有効なjsonチェック
私はGoogleでたくさん検索しました。以下の文字列が C で有効な JSON であるかどうかをプログラムで確認したいのですが、どうすればよいですか? (私は現在json-c
図書館を利用しています。)
ライブラリには、文字列が有効な JSON かどうかを確認する機能がありません。
nginx - json-c の未定義シンボルを持つ nginx モジュール: json_object_to_json_string
hello モジュールを使用して nginx をインストールする場合 (このモジュールは #include を使用します)
nginxをインストールする前に、yum -y install json-c json-c-develを使用します
make && make install 成功です。しかし、nginxテストを実行すると
/usr/sbin/nginx -t
エラーメッセージが表示されます:
ldd /usr/sbin/nginx
json-c ライブラリがロードされていません! 私に何ができる?