控制台

时间:2018-05-08 21:54:42

标签: jquery json parsing

这是名为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文件。为什么会发生此错误。非常感谢任何帮助!

2 个答案:

答案 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;
&#13;
&#13;