【问题标题】:javascript fetch api, why response.json() returns javascript object (instead of JSON string)?javascript fetch api,为什么 response.json() 返回 javascript 对象(而不是 JSON 字符串)?
【发布时间】:2020-12-14 09:09:03
【问题描述】:

我了解 Body.json() 是一个读取响应流以完成并将响应解析为 json 的函数。但是当我在响应上调用 json() 后 console.log jsonData 时,我得到了一个 javascript 对象。 jsonData 不应该返回 json 字符串而不是 javascript 对象,因为我们还没有调用 JSON.parse() 将 json 数据转换为 JavaScript 对象。

function fetchData() {
  fetch(`https://sv443.net/jokeapi/v2/joke/Any?type=single&idRange=${id}`)
    .then((response) => response.json())
    .then((jsonData) => {setJoke(jsonData);console.log(jsonData)});
}

控制台日志输出

{category: "编程",jokeType: "single"}

控制台日志预期输出

{"category": "Programming","jokeType": "single"}

【问题讨论】:

标签: javascript json reactjs


【解决方案1】:

“解析为 JSON”意味着它将响应视为 JSON 并对其进行解析(将其转换为 JavaScript 数据结构)。

意味着它将它字符串化为 JSON(这将是相反的,并且(在这种情况下)也毫无意义:它是已经 JSON)。

如果您想要响应中的原始 JSON,则使用 text() 方法将其作为文本读取。

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多