首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我收到一个SyntaxError: JSON中位置0处的意外标记u[已关闭]

我收到一个SyntaxError: JSON中位置0处的意外标记u[已关闭]
EN

Stack Overflow用户
提问于 2020-09-11 16:03:32
回答 2查看 2K关注 0票数 -4

关门了。这个问题是不可复制的或由打字错误引起的。它目前不接受答案。

想要改进这个问题吗?更新问题,使其成为主题堆栈溢出。6个月前就关门了。

改进这个问题

我是Javascript的新手,遇到了一些麻烦。我尝试在我的js代码中解析一个Json文件。我一直收到标题中提到的错误。似乎我的json格式错误,但我已经检查过了。我不知道有什么问题。错误发生在JSON.parse()

代码语言:javascript
运行
复制
document.getElementById('loadjson').addEventListener('click', function(e) {
      e.preventDefault();
      var jsonData = document.getElementById('jsondata').value;
      
      fetch('http://127.0.0.1:5500/src/main/resources/savedData.json')
        .then(response => response.json())
        .then(data => console.log(data))
        .then(function(data) {
            var obj = JSON.parse(data);
            document.getElementById("demo").innerHTML = 
            obj.pages[0].url;
        });
      
    });
代码语言:javascript
运行
复制
{
       "pages":[
          {
             "wikipage":{
                "latestModifier":{
                   
                },
                "author":{
                   "name":"some name",
                   "username":"some userid"
                },
                "latest_modification":"Tue Mar 14 10:42:33 CET 2017",
                "url":"some url"
             }
          },
          {
             "wikipage":{
                "latestModifier":{
                   
                },
                "author":{
                   "name":"some name",
                   "username":"some userid"
                },
                "latest_modification":"Thu Jun 08 08:12:38 CEST 2017",
                "url":"some url"
             }
          }
       ]
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-11 16:13:37

这里有两个问题:

response.json() 解析为JSON

JSON.parse(data)将响应解析为JSON,并返回解析为JavaScript数据结构的promise。

使用之后没有任何意义(除了HTTP响应已经双倍编码为JSON,在这种情况下,您应该修复web服务。

返回未定义

The console.log方法记录您传递给它的值并返回undefined

所以:

.then(data => console.log(data))

通行证undefined转到下一个then您需要传递data

代码语言:javascript
运行
复制
fetch('http://127.0.0.1:5500/src/main/resources/savedData.json')
    .then(response => response.json())
    .then(data => {
        console.log(data);
        return data;
    })
    .then(function(obj) {
        document.getElementById("demo").innerHTML = 
        obj.pages[0].url;
    });

或者不要添加额外的then

首先:

代码语言:javascript
运行
复制
fetch('http://127.0.0.1:5500/src/main/resources/savedData.json')
    .then(response => response.json())
    .then(function(obj) {
        console.log(obj);
        document.getElementById("demo").innerHTML = 
        obj.pages[0].url;
    });
票数 4
EN

Stack Overflow用户

发布于 2020-09-11 16:30:32

尝试以下操作:

代码语言:javascript
运行
复制
fetch('http://127.0.0.1:5500/src/main/resources/savedData.json')
.then(response => response.json())
.then(data => {
    var obj = data;
    document.getElementById("demo").innerHTML = 
    obj.pages[0].url;

} );

你不需要使用JSON.parse,因为你已经有了一个有效的对象。@Quentin给出了一个很好的解释

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63843104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档