你好,这是我第一次使用MustacheJS用JSON web服务在.NET胡子JS模板使用JSON收集
目前,我挣扎,我似乎无法找到我在做什么错误的设置这个简单的例子尝试:
我的web服务returing以下字符串:
[
{
"ShortDescription":"BOX",
"Description":"BOXING",
"Id":1
},
{
"ShortDescription":"EPL",
"Description":"ENGLISH PREMIER LEAGUE",
"Id":2
}
]
我已经验证了它的语法与本网站:http://json.parser.online.fr/
,这里是我使用的HTML代码:
google.load("jquery", "1");
google.setOnLoadCallback(function() {
$(document).ready(
function() {
$.ajax({
url: "../data.asmx/geteagues",
type: "POST",
dataType: "json",
data: "",
contentType: "application/json; charset=utf-8",
success: function (data) {
var template = "<h1>{{ShortDescription}} {{Description}}</h1>";
var html = Mustache.render(template, data);
$('#sampleArea').html(html);
alert(html);
}
})
}
)
});
我张贴整个JS代码,因为我不是很好用JavaScript,基本上我要永远加载从谷歌最新的JQuery的版本,然后工作我的WS电话。
问题到目前为止是,当我把一个断点以下行:
var html = Mustache.render(template, data);
我看到模板SETN ok了,所以做的数据,相同的值,我张贴以上,但.render函数返回:
我似乎它不喜欢的数据。到目前为止,我已经看到了前来为以下结构的内联数据的所有例子:
{
"repo": [
{ "name": "resque" },
{ "name": "hub" },
{ "name": "rip" },
]
}
然后模板这样定义:
{{#repo}}
<b>{{name}}</b>
{{/repo}}
但是,对唯一的区别我的数据是,我没有像“回购”的“父母”
在服务器端,我使用名为JSON.net的.net库和文档中的集合是如何erialized:
james.newtonking.com/projects/json/help/html/SerializingCollections.htm
最终的结果不包括父节点的名字,这是我的东西从我的胡子模板定义丢失:
[
{
"Name": "Product 1",
"ExpiryDate": "2000-12-29T00:00Z",
"Price": 99.95,
"Sizes": null
},
{
"Name": "Product 2",
"ExpiryDate": "2009-07-31T00:00Z",
"Price": 12.50,
"Sizes": null
}
]
这是我失踪?从我的数据“回购”父节点,所以我可以迭代我的模板?
提前感谢您的时间。
-ed
感谢回答@gonchuki,到目前为止,我看到的唯一问题是JSON.net序列化我的对象的方式,因为它可以将它包装在父节点周围。 – user1577704 2012-08-06 17:28:07
在一般情况下,您可以在通过JSON序列化程序获取数组之前将数组封装到匿名对象中,以便在反序列化时只有一个包含要使用的数组的对象(包含'repo')你的模板。 – gonchuki 2012-08-07 12:44:22