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 中的 freemarker:

<#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

问题在于,与 hashmap 类似,freemarker 需要一个字符串键。

所以我将“0”改为“a”,效果很好。

谢谢

于 2013-08-14T14:54:22.227 回答