reactjs React包含\n在从Flask API返回的Json中

xzlaal3s  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(114)

我已经在FLASK API应用程序中定义了一个端点,如下所示:

@app.route("/get_data", methods=["GET"])
def get_data():
    collection = mongo.db["colection_name"]
    query_results = collection.find_one()
    return jsonify(list(query_results))

它以JSON格式返回MongoDB中的数据,我可以使用requests库在Python中完全获取它,如下所示:

[
  {
    "date": "Sat, 01 Jan 1983 00:00:00 GMT",
    "tmed": 5.9
  },
  {
    "date": "Sun, 02 Jan 1983 00:00:00 GMT",
    "tmed": 4.4
  }, ...
]

但是,当我使用以下格式从React应用程序调用它时

const getData = async () => {
      try {
        const res = await axios.get(
          `http://127.0.0.1:5000/get_data`
        );
        setData(res.data);}

它以未格式化的字符串形式返回数据,其中添加了\n。这使得React不将数据视为数组,从而无法正确显示数据。这是React接收数据的格式:

'[\n  {\n    "date": "Sat, 01 Jan 1983 00:00:00 GMT" \n "tmed ..... }\n]\n'

我不确定问题是出在 flask 还是React端。有没有办法让 flask 正确地返回数据或React正确地消耗它?

8gsdolmq

8gsdolmq1#

替换\n并解析json

const res = await axios.get(
      `http://127.0.0.1:5000/get_data`
    );

    const result = JSON.parse(res.data.replace('\n', ''))

    setData(result.data);}

相关问题