json Fetch -有没有更简单的方法将其转换为数组或可读格式,以便循环使用?

42fyovps  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(91)

如果我使用“application/text”和res.text(),它将返回纯文本而不是数组。如果我使用res.json(),我将在"<“结尾处获得无效标记。如果我使用JSON.stringify(final),我将获得一个无法解析的额外新行字符串。是否有其他方法从公共文件夹中准备此内容?
这是我得到的示例文件结构,不是json,而是一个对象实体数组:
文件名:newFile.dto

[
  {
    id: 0,
    img: 'C:\\ReactProjects\\IMAGES\\DSC_0134.jpg',
    test: 'another column'
  },
  {
    id: 1,
    img: 'C:\\ReactProjects\\IMAGES\\DSC_0135.jpg',
    test: 'another column 1'
  },
  {
    id: 2,
    img: 'C:\\ReactProjects\\IMAGES\\DSC_0136.jpg',
    test: 'another column 2'
  },
  {
    id: 3,
    img: 'C:\\ReactProjects\\IMAGES\\DSC_0137.jpg',
    test: 'another column 3'
  }
]

  async function testFileRead()
  {
     let myArray = await fetch('newFile.dto',{
        headers : { 
          'Content-Type': 'application/text',
          'Accept': 'application/text'
         }
       }
      )
      .then(res =>{
        return res.text(); //res.json()
      })
      .then(final =>{
        return final;
      })
  }

字符串

kwvwclae

kwvwclae1#

您可以在fetch之后使用eval()

console.log("data", myArray); //text as string
  console.log("eval", eval(myArray)); //array JS

字符串


注意***Never use eval()!***:从字符串执行JavaScript是一个巨大的安全风险。
正如 * 基思 * 建议使用至少比eval更安全:

const arr = new Function("return [..." + myArray + "]")();
  console.log(arr.map((obj) => obj.test));// ['another column', 'another column 1', 'another column 2', 'another column 3']

相关问题