用JSON.parse()做转换,必须用双引号包起来。但是我用chrome的devtools时,它可以自动转换。于是上网查了一下,原来可以通过replace方法格式化一下。(修改后可以兼容日期格式)

	let a= "{id: 1, name:test, gender: 男,}";
let fixed_a = a
.replace(/(['"])?(\d{4})-(\d{1,2})-(\d{1,2})?\s*,/g, '"$2-$3-$4",')
// 通过@colon@替换“:”,防止日期格式报错
.replace(/(['"])?(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})(['"])?\s*,/g, '"$2-$3-$4 $5@colon@$6@colon@$7",')
.replace(/(['"])?([a-z0-9A-Z\u4e00-\u9fa5_]+)(['"])?\s*:/g, '"$2": ')
.replace(/:\s*(['"])?([a-z0-9A-Z\u4e00-\u9fa5_]+)(['"])?\s*,/g, ': "$2",')
.replace(/@colon@/g, ":")
.replace(/:\s*,/g, `:"",`)
.replace(/:\s*,\s*}/g, `:""}`)
.replace(/:\s*,\s"/g, `:"","`)
.replace(/:\s*,\s'/g, `:"",'`)
.replace(/,\s*}/g, "}");
let obj = JSON.parse(fixed_a);
console.log(obj);

参考资料:

JSON.parse无双引号如何实现转换的更多相关文章

  1. 浅谈JSON.stringify 函数与toJosn函数和Json.parse函数

    JSON.stringify 函数 (JavaScript) 语法:JSON.stringify(value [, replacer] [, space]) 将 JavaScript 值转换为 Jav ...

  2. json.stringfy()和json.parse()

    json.stringfy()将对象.数组转换成字符串:json.parse()将字符串转成json对象. json.stringfy(): 语法:  JSON.stringify(value [, ...

  3. JSON.parse 函数应用 (复制备忘)

    JSON.parse 函数 JSON.parse 函数 (JavaScript) 将 JavaScript 对象表示法 (JSON) 字符串转换为对象. 语法 JSON.parse(text [, r ...

  4. eval()和JSON.parse()的区别

    我们将一个josn字符串解析为对象的时可以使用两种方法: 假设有一个json字符串: '{ "student" : [ {}, {}, {} ] }' 然后解析为对象: 1.eva ...

  5. JSON.stringify和JSON.parse的使用

    JSON.stringify 函数 (JavaScript)将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串.JSON.stringify(value [, ...

  6. js 中 json.stringfy()将对象、数组转换成字符串

    json.stringfy()将对象.数组转换成字符串 var student = new Object(); student.name = "Lanny"; student.ag ...

  7. json 转换错误:JSON.parse expected property name or '}'

    错误原因: 格式要为: [ { "name":"张三", "age":"20" }, { "name" ...

  8. JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

    JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

  9. JSON.parse 必须用双引号包起来

    Why is it that whenever I do :- JSON.parse('"something"') it just parses fine but when I d ...

随机推荐

  1. Windows核心编程 第七章 线程的调度、优先级和亲缘性(上)

    第7章 线程的调度.优先级和亲缘性 抢占式操作系统必须使用某种算法来确定哪些线程应该在何时调度和运行多长时间.本章将要介绍Microsoft Windows 98和Windows 2000使用的一些算 ...

  2. MBG:mybatis逆向工程使用

    一:如果是Maven工程可在pom.xml文件中添加插件 <build> <plugins> <plugin> <groupId>org.mybatis ...

  3. Could not contact [localhost:8005]. Tomcat may not be running.

    出错环境介绍: Tomcat-version:8.5.56 JDK-version:1.8.0_152 Linux:CentOS-7 错误信息 sh /opt/apache-tomcat-8.5.56 ...

  4. Nginx解决跨域问题(CORS)

    跨域 解决跨域问题一般有两种思路: CORS 在后端服务器设置 HTTP 响应头,把你需要运行访问的域名加入加入 Access-Control-Allow-Origin中. jsonp 把后端根据请求 ...

  5. Spring随堂笔记

    Spring 1.IoC控制反转 IoC特点不用new 就可以初始化类: 控制反转的英文名叫 Ioc(Inversion of Control) ,依赖注入英文名叫DI(Dependency Inje ...

  6. ConcurrentHashMap源码解读一

    最近在学习并发map的源码,如果由错误欢迎指出.这仅供我自己学习记录使用. 首先就先来说一下几个全局变量 private static final int MAXIMUM_CAPACITY = 1 & ...

  7. java学习路线分析

  8. pip安装模块或者更新出现问题Error:Could not install packages due to an EnvironmentError

    问题分析 出现此问题大致的原因: 就是包安装的位置没有读写的权限,这个多半是因为安装python的时候安装在了C盘,或者其他programs这类的文件夹里 或者就是环境变量的设置的安装位置的问题,导致 ...

  9. [DB] Spark Streaming

    概述 流式计算框架,类似Storm 严格来说不是真正的流式计算(实时计算),而是把连续的数据当做不连续的RDD处理,本质是离散计算 Flink:和 Spark Streaming 相反,把离散数据当成 ...

  10. Docker——安装部署

    前言 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安 ...