我正在使用自定义Tcl脚本,该脚本从文件读取JSON并将其返回到JavaScript脚本中。我已经为此JSON编写了一个简单的转换,但是当我执行它时,出现错误。有趣的是,当我粘贴相同的JSON内联时,它可以工作。我知道Tcl脚本肯定有问题,但是我似乎无法弄清楚它是什么。有什么建议么?
var datJSON = Tcl_Script_to_get_JSON;
//var datJSON = some_inline_JSON THIS WORKS!!
var trans = [
{ "tag" : "div", "id" : "reportTitle", "html" : "Report: ${Name}" }, //report title
{ //general Details, date, time, revision number
"tag" : "ul", "children" : [
{"tag" : "li", "class" : "generalDetails", "html" : "Created on : ${Date}"},
{"tag" : "li", "class" : "generalDetails", "html" : " at : ${Time}"},
{"tag" : "li", "class" : "generalDetails", "html" : "Revised for : ${RevisionNumber}"}
]
}
];
//run the JSON through the json2html transform
var output = json2html.transform(datJSON, trans);
$("#main").append(output);
最佳答案
问题是在浏览器上下文之外使用了JSON2HTML。
JSON2HTML使用JSON.parse()
来解析JSON,这是浏览器固有的功能。除此之外,我们还必须使用jQuery或其他任何有用的库,例如$.parseJSON()
。
这样就可以了。我应该彻底检查来源。