2011-08-22 107 views
0

我有JSON文件input.json:无法解析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}); 
     }); 

}); 

当我运行它,我我无法查看我的标签中的输入框。请指出我出错的地方。

+1

如果您发布使用JavaScript错误控制台输出这将有助于... – CAFxX

回答

0

我终于设法清除的tomcat的web.xml所有errors.Specifying MIME类型不enough.I不得不手动覆盖它在我的js文件。该下面的代码删除错误“不能很好地形成”

$.ajaxSetup({beforeSend: function(xhr){ 
if (xhr.overrideMimeType) 
{  
    xhr.overrideMimeType("application/json");} 
} 
}); 

而且我闯民宅的JSON文件都在我的JSP和JavaScript文件,这是造成无效的标签错误

2

你说你有文件input.js,但在代码中你有input.json - 这可能是一个原因吗?

UPDATE

你也给名字的功能 - 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.namethis.secret_key+''+this.name,而consumner_keyname不同程度的性质。我相信,this里面的each应该代表你的json对象中的每个单独的子对象。所以它将有财产name,但不是consumner_key。我可能是错的,但无论如何this不能有两个属性。

+0

抱歉..做在输入问题时出错。我的json文件是input.json – newbie

+0

查看更新回答 –

+0

and mor e更新 –