这是名为menu.json的文件的内容:
{ "name":"John", "city":"New York"}
我想使用jquery将json文件解析为Chrome的控制台
var res = $.getJSON("menu.json", function() {})
.done(function() {
var obj = $.parseJSON(res);
console.log(obj.name);
});
出于某种原因,Chrome正在说 “未捕获的SyntaxError:在位置1的JSON中出现意外的标记o ”
我在MAMP和网络选项卡中运行页面,我能够看到已正确加载的json文件。为什么会发生此错误。非常感谢任何帮助!
答案 0 :(得分:2)
您正在尝试解码对象,而不是JSON字符串。
您尝试解码的内容在被foreach (SPListItem i in template.Items)
{
if (i.Name.ToLower().Contains("project"))
{
string url = i.Url;
string absoluteUrl = (string)i[SPBuiltInFieldId.EncodedAbsUrl];
MailItem mail = application.CreateItemFromTemplate(url) as MailItem;
//or
MailItem mail = application.CreateItemFromTemplate(absoluteUrl) as MailItem;
}
}
传递给JSON解码器之前被序列化,因此索引为1的[object Object]
。
返回getJSON docs,您会发现自己没有正确设置回调。您在o
中存储的返回值并非您认为的那样。您需要为回调函数收集一个参数 - 这是您的解码响应所在的位置。
这可以让你找到正确的方法:
res
答案 1 :(得分:0)
数据已经被解析。只需接受响应作为完成回调的输入。
var url = 'https://cdn.rawgit.com/taplar/taplar-hiddenworld/b69ca458/src/assets/jsons/potions.json'
$.getJSON(url).done(function(data){
console.log(data);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;