3

サーバーからクライアントに JSON 文字列を渡そうとしていますが、それを Freemarker で操作したいと考えています。

サーバーからのjsonは次のとおりです。

"{\"0\": 
{\"keyA\": 2896.42,\"keyB\": 5.682365615075204,\"keyC\": 1044018.3981740332},
\"1\": 
{\"keyA\": 2896.73,\"keyB\": 5.683365542595956,\"keyC\": 1043386.221698152},
\"2\": 
{\"keyA\": 2897.37,\"keyB\": 5.68536539763746,\"keyC\": 1044550.1489558858},
\"3\": 
{\"keyA\": 2909.49,\"keyB\": 5.6803657600337,\"keyC\": 1053277.0319540345}}"

HTML 内の私のフリーマーカー:

<#assign pj = pJson?eval> ${pj.0.keyA}

提供されるエラーは次のとおりです。

Encountered "0" at line 894, column 85 in blah/doc.htm.
Was expecting one of:
"false" ...
"true" ...
<LESS_THAN> ...
<LESS_THAN_EQUALS> ...
<ESCAPED_GT> ...
<ESCAPED_GTE> ...

どうしてこれなの?[0]、["0"] でキー "0" の下の値にアクセスしようとしました。何も機能していないようです。

何か案は?

4

2 に答える 2

2

それはする必要があります${pj['0'].keyA}

于 2013-08-14T15:44:40.437 に答える
0

問題は、ハッシュマップと同様に、freemarker が文字列キーを必要とすることです。

\"0\" を 'a' に変更したところ、問題なく動作しました。

ありがとう

于 2013-08-14T14:54:22.227 に答える