我正在使用.json文件和jQuery $.getJSON
来填充div
文本,我的代码如下:
代码:
$.getJSON("/js/content.json", function (data) {
$(".lander .title").text(data.lTitle);
$(".lander .subtitle").text(data.lSubtitle);
$(".lander .text").html(data.lText).split('\n').join('<br/>');
});
JSON文件:
{
"comment": "Landing page",
"lTitle": "Your webpage",
"lSubtitle": "Your webpage subtitle",
"lText": "Edit this text under >js/content.json< ",
"lDetailsTitle": "Here goes the details title under the landing header.",
"lDetailsText": "Here goes the details text."
}
我要做的是使用$parseJSON
检查整个content.json
是否有效(不只是一个字符串)。我想这样做的原因是,jquery可以在DOM中显示错误消息,以便用户知道为什么div
中没有文本。
我试过这个,但它不起作用:
var isValid = jQuery.parseJSON("/js/content.json");
if (isValid === true) {} else {
$("#overlayMessage").css("display", "block");
$("#overlayMessage .title").text("Oh no, we can't display this page!");
$("#overlayMessage .text").text("An error occured with the file under: 'js/content.json'. Reason: Invalid.");
}
是否可以这样做,或者你只能检查一个字符串是否有效?
答案 0 :(得分:2)
你可能想要这样的东西:
try{
var json = JSON.parse("invalid json");
}catch(err){
console.log('json is invalid');
}
在浏览器中运行此命令的输出是“json无效
”答案 1 :(得分:1)
提供fail()
回调以捕获来自getJSON()
$.getJSON('/foo/bar.json')
.done(function(d) {
alert("success");
})
.fail(function(d) {
alert("error");
});
答案 2 :(得分:0)
jQuery.parseJSON()解析JSON字符串,但您提供了一个URI。您可以使用jQuery.get()将JSON作为文本提取,然后使用jQuery.parseJSON()
检查它是否有效。
$.get( "/js/content.json", function( data ) {
try {
var jsonObj = jQuery.parseJSON( data );
} catch(err) {
$("#overlayMessage").css("display", "block");
$("#overlayMessage .title").text("Oh no, we can't display this page!");
$("#overlayMessage .text").text("An error occured with the file under: 'js/content.json'. Reason: Invalid.");
}
});