【问题标题】:Why isn't my json data formatted nicely in the browser?为什么我的 json 数据在浏览器中的格式不正确?
【发布时间】:2020-08-01 23:07:01
【问题描述】:

我正在学习 Express,我刚刚构建了一个对数据库进行 CRUD 操作的 JSON API

它工作正常,但我想知道为什么我的 JSON 数据在浏览器上是这样格式化的

[{"_id":"5f253d105f194d4c8074227d","firstName":"John","lastName":"Doe","age":38,"__v":0},{"_id":"5f253d3a5f194d4c8074227e","firstName":"Jane","lastName":"Doe","age":33,"__v":0}]

我希望它的格式像

[
 {
   "_id":"5f253d105f194d4c8074227d",
   "firstName":"John",
   "lastName":"Doe",
   "age":38,
   "__v":0},
 {
   "_id":"5f253d3a5f194d4c8074227e",
   "firstName":"Jane",
   "lastName":"Doe",
   "age":33,
   "__v":0}
]

这是我用来获取用户的函数

router.get("/", async (req, res) => {
  try {
    const getUsers = await Users.find();
    res.json(getUsers);
  } catch (err) {
    res.json({ message: err.message });
  }
});

【问题讨论】:

  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask所有示例代码都必须在您的问题中,而不是指向任何第三方网站的链接。

标签: express mongoose


【解决方案1】:

您的浏览器只需要一个 JSON 格式化程序,您可以为 Chrome 或 JSONView Firefox 使用像 JSON Formatter 这样的格式化程序。或者您可以使用任何 API 客户端(例如 InsomniaPostmanPostwoman...)来测试您的 API 响应,而不是在您的浏览器上进行测试

编辑:

如果您希望(出于任何原因)发送预先格式化/人类可读的 JSON 响应,您可以使用 JSON.stringify 来实现,例如:

app.get("/formatted", (req, res) => {
  const formattedResponse = JSON.stringify(data, null, 2)
  res.type('json').send(formattedResponse)
});

【讨论】:

  • 好的,这是正常行为,谢谢。因为我习惯使用第三方 API,而且它的格式总是很好,我不需要任何扩展。以JSONPlaceholder 为例
  • 是的,正常行为,JSON 响应意味着由其他应用程序和库使用,因此不需要会影响响应大小的间距、制表符和换行符。但是,我将编辑我的响应并添加一个示例,说明如果您想发送人类可读和预先格式化的 JSON 响应,如何执行 JSONPlaceholder 之类的操作
  • 很好,这正是我想要的样子!我更喜欢这种方式,因为它更具可读性,并且我不希望我或任何用户(如果我的 API 公开)依赖扩展来正确读取它。谢谢大佬
猜你喜欢
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多