首页 > 解决方案 > 为什么我的 json 数据在浏览器中的格式不正确?

问题描述

我正在学习 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 });
  }
});

标签: expressmongoose

解决方案


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

编辑:

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

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

推荐阅读