問題タブ [jsmn]
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.
json - 組み込みシステムでjsmnを使用して小さなJSONファイルを解析するにはどうすればよいですか?
組み込みシステム(10K RAM /フラッシュのみ)で小さなJSONファイルを解析する必要があります。JSONは次のとおりです。
jsmnは要件に合うように見えますが、トークンしか提供しないため、ほとんどのJSONパーサーとは異なります。試しましたが、わかりませんでした。
誰かがjsmnでそれを解析する方法の例を共有できますか?
c - JSMN API の問題
jsmn ライブラリがどのように機能するかを理解するのに苦労しています。これが私の現在のコードとそれが生成するものです。私の問題は derefBy 関数のみに基づいています
jsmn マーカーを返さなければならないことはわかっていますが、名前または姓だけでそれを作成する方法がよくわかりません。この関数を使用したコード例を次に示します。
私の混乱は結果に基づいています。私が得るのは完全にランダムなようです
または、何も変更せずにこれを取得します
単純に生成したい
fmt は 's' および 'd' 文字の文字列で、残りの引数がオブジェクト キーまたは配列インデックスのどちらであるかを示します。たとえば、derefBy(marker,"sds",key1, sub1, key2) は、最初に key1 によってマーカーを逆参照し、次に sub1 をインデックス付けし、最後に key2 をインデックス付けします。
c - ヘッダーのみの C "ライブラリ" は無駄ではありませんか?
ヘッダーのみの C「ライブラリ」を見ています: https://github.com/zserge/jsmn/blob/master/jsmn.h
私が理解できる限り、このコードは .c ファイルに含まれるすべてのオブジェクト ファイルにコンパイルされjsmn.h
、スペースが無駄になります。
(ファイルの関数定義は 内#ifndef JSMN_HEADER
にあるため、JSMN_HEADER を定義することで、これを「従来の」ヘッダー ファイルとして使用できます。)
- 「トラディショナル」
.c
と.h
ペアで書かれていないのはなぜですか? - リンカは、オブジェクト ファイル間で関数の同一定義を重複排除するのに十分賢いですか? 「重複シンボル」エラーが発生すると予想していました。
- コードをヘッダーに配置すると、C でどのような利点が得られますか? (C++ ではありません。)
#define JSMN_HEADER
インポートする前に使用する場合、関数定義はどこから取得しますか?- ヘッダーのみであることは
jsmn.h
巧妙なトリックであり、そこから学ぶことができますか?