2

":" や "#" などの特殊文字を含むキーを持つ JSON データで、dust.js テンプレートを使用しようとしています。

テンプレートでこれらのキーを指定するにはどうすればよいですか?

例えば:

JSON data:
{
    "opensearch:totalResults": 200,
    "#text": "some data"
}

Dust.js テンプレート:

<div>There are {opensearch:totalResults} items found</div>

これは正しく解決されず、JSON データに置き換える代わりにテンプレート テキストを単に出力します。

4

1 に答える 1

5

問題は、dustjs でキーが有効でないことです。これは、キーの検証に使用している pegjs ルールです。

key "key"
 = h:[a-zA-Z_$] t:[0-9a-zA-Z_$-]*
 { return h + t.join('') }

これは、次の場合にのみキーが有効であることを意味します。

  • 文字、アンダースコア、または $ で始まる
  • キーの残りの部分は、文字、アンダースコア、$、またはダッシュ (-) です。

ご覧のとおり、# と : はキーの一部として有効な記号ではありません。

追加する必要がある場合は、Issue を開くか、プル リクエストを送信して、この機能が必要な理由を説明してください。

于 2013-01-28T14:01:52.553 に答える