2011-08-22 137 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更新 –