上传本地txt文件
<Upload beforeUpload={getNavFile} maxCount={1}>
<Button icon={<UploadOutlined />}></Button>
</Upload>
内容
{\"path\": {\"segment\": \"}}}
读取
const getOddFile = async (file) => {
const str = await getUploadFile(file)
try {
const data = JSON.parse(str)
const res = getnpFeatures(data.path)
npFeatures.current = res
message.success('导航数据截取成功!点击应用进行下一步操作')
} catch (error) {
message.error(`文件解析失败${error}`)
}
}
export const getUploadFile = (file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.readAsText(file)
reader.onload = () => {
resolve(reader.result)
}
reader.onerror = reject
})
}
JSON.parse报错:
- 在浏览器控制台JSON.parse(str)正常解析
- 在线解析工具JSON在线解析 (juhe.cn)解析str也报错 解析前将转义字符串去掉,解析成功
const data = JSON.parse(str.replace(/\\/g, ''))
- "面前加转义\是为了让"能嵌套,成功识别成字符串的引号
- 某些编译器和浏览器控制台能自动识别转义符号,放在项目里要手动去掉转义字符串