繁体   English   中英

无法解析JSON字符串

[英]Unable to parse the JSON string

我有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});
        });

});

当我运行它时,我无法查看选项卡中的输入框。 请指出我出错的地方。

你说你有文件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不能兼具两个属性。

我终于设法清除了所有错误。在tomcat的web.xml中指定MIME类型是不够的。我不得不在我的js文件中手动覆盖它。下面的代码删除了错误“not well formed”

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

另外,我在jsp和javascript文件中引用了json文件,这导致了无效的标签错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM