node.js - 如何以json字符串作为值解析json
问题描述
我的 json 对象中的一个值是代表 json 的字符串。如何在 node.js 中解析它?如何将 json 字符串表示为 json 对象中的值?它似乎在字符串中的第一个大括号上失败了。
例子:
> json = '{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}'
> JSON.parse(json)
> Uncaught SyntaxError: Unexpected token a in JSON at position 8
预期的:
{
t: '{a:1,b:"a sample text"}',
c: 2,
r: 'some text'
}
解决方案
您可以替换多余的不必要的字符,然后解析 json。我只是做了一些逆向工程来解析它。
let json = '{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}'
const parsedJson = JSON.parse(json.replace(/\\"/g,"").replace(/"{/g, "{").replace(/}"/g, "}"))
console.log(parsedJson)
希望这可以帮助。
推荐阅读
- reactjs - 如何向 GitLab 报告 AWS Amplify 控制台管道状态?
- r - 有没有办法在ggplot中将x轴设置为最小值和最大值?
- ruby - Ruby 中的 SHA256 哈希不是预期值
- ckeditor - CKEditorType 上的 FOSCKEditorBundle 验证未设置样式
- python - tkinter 选项菜单不会为通过 .add_command() 创建的选定选项返回正确的值
- c# - Xunit 理论的参数化记录创建
- android - Webview 应用和插页式广告 Android Studio
- snowflake-cloud-data-platform - 比较 Snowflake 上包含 NULL 值的两个表
- airflow - 用气流发送 csv
- python - 尝试将多列打印到 .tsv 文件中的一行