我有JSON文件input.json:
{
"consumner_key": {
"display_name": "CONSUMER-KEY:",
"name":"consumer_key",
"format": "string",
"type": "textbox",
"isMandatory": "true"
},
"secret_key": {
"display_name": "CONSUMER-SECRET:",
"name":"consumer_secret",
"format": "string",
"type": "textbox",
"isMandatory": "true"
}
}
我使用$.getJSON()
获取JSON文件并解析它:
$.getJSON('input.json',function jsonData(Data)
{
$.each(Data, function(m,field)
{
console.log(m);
$('#tabs-4 social').append('<input></input>').attr({type:'text',name:this.consumner_key+''+this.name});
$('#tabs-4 social').append('<input></input>').attr({type:'text',name:this.secret_key+''+this.name});
});
});
当我运行它时,我无法查看选项卡中的输入框。请指出我出错的地方。
答案 0 :(得分:2)
你说你有文件input.js
,但是你的代码中有input.json
- 这可能是一个原因吗?
<强>更新强>
您还可以为您的函数命名 - jsonData
。据我所知你不应该命名内联javascript函数,它不会编译。只是做
$.getJSON('input.json',function (Data) {
$.each(Data, function(m,field) {
console.log(m);
$('#tabs-4 social').append('<input></input>').attr({type:'text',name:this.consumner_key+''+this.name});
$('#tabs-4 social').append('<input></input>').attr({type:'text',name:this.secret_key+''+this.name});
});
});
更新2
此外,您执行this.consumner_key+''+this.name
和this.secret_key+''+this.name
,而consumner_key
和name
是不同级别的属性。我相信,this
内的each
应该代表json对象中的每个子对象。因此它将具有属性name
,但不具有consumner_key
。我可能错了,但无论如何this
不能同时拥有这两个属性。
答案 1 :(得分:0)
我终于设法清除了所有的错误。在tomcat的web.xml中指定MIME类型是不够的。我不得不在我的js文件中手动覆盖它。下面的代码删除了错误“not well formed”
$.ajaxSetup({beforeSend: function(xhr){
if (xhr.overrideMimeType)
{
xhr.overrideMimeType("application/json");}
}
});
此外,我在jsp和javascript文件中引用了json文件,这导致了无效的标签错误