使用JQuery模板解析嵌套的JSON对象

时间:2012-06-08 17:24:23

标签: jquery json jsonpath

我正在尝试将此JSON对象(来自Google Books API)中的数据放入HTML模板中。 JSON看起来像这样:

{
 "kind": "books#volumes",
 "totalItems": 4,
 "items": [
  {
   "kind": "books#volume",
   "id": "LcQXAAAAYAAJ",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/LcQXAAAAYAAJ",
   "volumeInfo": {
    "title": "The Arabian Nights",
    "authors": [
     "George Fyler Townesend"
    ]
   }
  },
  {
   "kind": "books#volume",

... 完整的JSON:http://goo.gl/993CL

我的模板(通过jquery.tmpl)如下所示:

var markup = "<tr><td>${kind}</td><td>${totalItems}</td><td>${items.volumeInfo.title}</td></tr>";

然而,当我运行它时,它只显示这三列中的第一列:

   <tr><td>result 1</td></tr>
   <tr><td>result 2</td></tr>
   <tr><td>result 3</td></tr>

为什么$totalItems没有显示?什么是获得头衔的正确途径?

${items.volumeInfo[*].title}   ? 

这是小提琴:http://jsfiddle.net/khcsq

1 个答案:

答案 0 :(得分:2)

你不能只做items.volumeInfo。您必须在items上运行each loop

var markup = "{{each items}}<tr><td>${volumeInfo.title}</td></tr>{{/each}}";

见这里:http://jsfiddle.net/khcsq/3/