Javascript JSON.parse()与.JSON()的比较

Javascript JSON.parse()与.JSON()的比较,javascript,json,fetch,Javascript,Json,Fetch,我最近一直在使用FetchAPI和Promises,遇到了.json()。json()通常返回与json.parse相同的输出。我用谷歌搜索了这个问题,结果指向了其他方向 XHR和JSON.parse示例: $('#xhr').click(function(){ var XHR = new XMLHttpRequest(); XHR.onreadystatechange = function(){ if (XHR.status == 200 && XHR.rea

我最近一直在使用FetchAPI和Promises,遇到了.json()。json()通常返回与json.parse相同的输出。我用谷歌搜索了这个问题,结果指向了其他方向

XHR和JSON.parse示例:

$('#xhr').click(function(){
  var XHR = new XMLHttpRequest();

  XHR.onreadystatechange = function(){
    if (XHR.status == 200 && XHR.readyState == 4) {
      $('#quote').text(JSON.parse(XHR.responseText)[0]);
    }
  };

  XHR.open("GET", url);
  XHR.send();
});
获取API的示例:

$('#fetch').click(function(){
  fetch(url)
  .then(function(res){
    return res.json();
  })
  .then(function(quote){
    $('#quote').text(quote);
  })
  .catch(function(err){
    handleError(err);
  });
});
有人能解释一下这些看似相似的概念之间的区别吗?
Thank

是异步的,它返回一个解析为JavaScript对象的
Promise
对象。is synchronous可以解析字符串并更改返回的JavaScript对象。

在我看来,res.json和json.parse的功能相同。首选res.json是因为它的语法。 分享示例以更好地理解

 this.service.userFunction() //calling service
.then((res) => {
 this.userdetails = JSON.parse(res._body); //use this
 this.userdetails = res.json(); // or use this syntax any one
 )}
.catch()

使用它们中的任何一个都将提供完整的响应主体并理解它们的功能。

'AJAX'与'callbacks'一起工作; “fetch”与“promises”一起使用。 使用JSON.parse()解析AJAX的响应。 使用json()解析用于获取的响应。

主体mixin的json()方法获取一个响应流,并将其读取到完成。它返回一个承诺,该承诺与将正文文本解析为JSON的结果进行解析。 parse()方法解析一个JSON字符串,构造该字符串描述的JavaScript值或对象


使用JSON.parse()解析AJAX的响应。使用json()解析获取的响应。

您能显示您的代码吗?@fool dev您读过这个问题吗?我添加的示例可能是重复的?@tsh链接的问题如何解决当前问题的查询?谢谢您的回答。:)Body.json()返回一个承诺-但我看到一些示例,其中使用data=Body.json()直接访问数据-显然没有取消承诺-但在其他示例中,我看到通过.then(data)使用承诺,并且从承诺中访问数据。第一个例子为什么有效?Thank.res.json()返回一个承诺,因此在返回该承诺之后,您需要链接一个额外的then(data){this.userdetails=data}