使用JSON.parse()转化成json对象需要注意的地方

2023-11-10

相信大部分人都知道或者去百度检索都会得到将js中的字符串转化成json对象常见的3种方法

举例:

var str = '{"name":"小明","age":18}';

将字符串转化json对象:

1. var json = JSON.parse(str);

2. var json = eval("(" + str + ")");

3. var json = (new Function("return " + str))();

通过console.log()将json打印到控制台,不管是使用以上3种哪一种方法,都能在chrome控制台看到成功转化的结果:

使用JSON.parse()转化成json对象需要注意的地方

但是如果使用JSON.parse()方法来转化json对象,需要注意的坑点是什么?

1.字符串的数据格式

以上举例 str = '{"name":"小明","age":18}'; 属性name和age都用双引号引住,

有的人可能会习惯写成对象形式的字符串,如:str = '{name:"小明",age:18}';

结果使用JSON.parse()来转化会报错,因为使用JSON.parse需严格遵守JSON规范。

使用JSON.parse()转化成json对象需要注意的地方

使用JSON.parse()转化成json对象需要注意的地方

2.单引号与双引号

我们看到一开始的举例中 var str = '{"name":"小明","age":18}'; 使用单引号来套双引号,如果反过来写呢,如:var str = "{'name':'小明', 'age':18}";(相信也不少人习惯用双引号套单引号)

结果使用JSON.parse()来转化也会报错

使用JSON.parse()转化成json对象需要注意的地方

使用JSON.parse()转化成json对象需要注意的地方

最后总结来说,如果使用JSON.parse()方法来转化成json对象的数据格式的话,需要注意的是被转化的字符串里面的属性要使用引号,并且总体是单引号套双引号的方式。

当然,如果你使用eval()或者new Function()的方式来转化,那就完全可以忽略上述的这两点需要注意的地方~( ̄▽ ̄~)(~ ̄▽ ̄)~哈哈

附:

eval() 函数可将字符串转换为代码执行,并返回一个或多个值

eval调用时,实例为eval( "( javascript代码 )" )

var str = "function(){alert('a');}“;

str = eval("("+str+")");

str();

eval()的返回值

eval()的返回值遵循以下规则:

1.如果eval()的参数不是字符串,那么eval()将直接返回参数。

2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进行执行,并返回最后一行代码执行的结果。

3.如果字符串无法解析成合法的代码,eval()将抛出SyntaxError错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用JSON.parse()转化成json对象需要注意的地方 的相关文章

随机推荐

  • 关于Navicat 报错1251连接不成功Mysql

    使用Navicat 连接数据库时候出现1251错误 解决方法 1 首先打开mysql exe 然后输入密码 mysql exe可以在安装的位置搜索一下 2 输入ALTER USER root localhost IDENTIFIED WIT
  • C#WinForm界面: 使用IrisSkin4实现美化换肤

    记录IrisSkin4应用过程 方便以后参考 步骤一 在网上下载IrisSkin4 dll和它的皮肤文件 步骤二 复制以下两个文件到winfrom项目的Debug文件夹下 步骤三 引用IrisSkin4 dll文件 步骤四 在工具箱空白处点
  • 数字图像处理(冈萨雷斯 第三版)

    1 1 图像与图像处理的概念 图像 Image 使用各种观测系统以不同形式和手段观测客观世界而获得的 可以直接或间接作用于人眼并进而产生视觉的实体 包括 各类图片 如普通照片 X光片 遥感图片 各类光学图像 如电影 电视画面 客观世界在人们
  • MySQL——索引详解

    目录 一 为什么要有索引 二 什么是索引 三 索引的原理 四 MySQL的存储引擎 五 索引的数据结构 六 聚簇和非聚簇索引 七 索引的设计原则 一 为什么要有索引 一般的应用系统 读写比例在10 1左右 而且插入操作和一般的更新操作很少出
  • 系统分析中的决策问题

    例如你设计一个图书馆系统支持用户预订被借出的书籍 有两个解决方案 一是 每一本书被归还时校验是否有人预订 如有预订则以某种方式如短信等通知预订客户 同时书籍做另类处理不会被流入馆内以节省时间 但是问题是预订的客户要来走一个预订的流程即管理员
  • 【B站】动态规划学习

    https www bilibili com video BV1ET4y1U7T6 p 6 spm id from pageDriver 暴力递归到动态规划 测试用例 include
  • 基于STM32F103C8T6的超声波模拟雷达设计。【C8T6最小系统板+标准固件库+1.8‘TFT-LCD屏】

    前言 之前为做毕设一直在网上浏览关于STM32单片机的DIY项目 大多数设计都是关于智能家居方面的应用 通过浏览不同平台的内容发现了一个采用超声波测距并通过屏幕反馈障碍物位置的模拟雷达设计 感觉很有创意 但网上关于此项目的内容大多都是采用a
  • 手撕 AVL 树——C++ 高阶数据结构详解

    目录 传统艺能 概念 AVL 树结构定义 数据插入 AVL 树旋转 左单旋 右单旋 左右双旋 右左双旋 验证 AVL 树 查找 删除 传统艺能 小编是双非本科大一菜鸟不赘述 欢迎各位指点江山 期待 QQ 1319365055 此前博客点我
  • 四、FTP服务

    四 FTP服务 FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一 是目前Internet上使用最广泛的文件传送协议 FTP概述 ftp是典型的C S架构的应用层传输协议 需要由服务端软件 客户端软件两个部分共同实现
  • TCP是怎么处理长连接、短连接

    TCP 协议是一种面向连接的协议 即在通信双方之间建立连接后才能开始传输数据 TCP 协议通过三次握手建立连接 在连接建立后就可以保持长时间的连接 以实现长连接 在 TCP 协议中 数据被分成多个数据包进行传输 每个数据包都有序号和确认应答
  • mac idea spark运行报错WARN Utils: Service ‘sparkDriver‘ could not bind on port 0. Attempting port 1.

    报错截图如下 在hosts里加入 本机ip 机器名 如 192 168 22 22 centos7 解决 原因是sparkDriver会根据主机名去找地址 找不到就报错 增加环境变量即可 SPARK LOCAL IP 127 0 0 1 也
  • efficientdet在gpu训练好的模型无法再cpu上使用

    AssertionError The NVIDIA driver on your system is too old found version 9010 Please update your GPU driver by downloadi
  • hdu 1069 Monkey and Banana

    Problem acm hdu edu cn showproblem php pid 1069 Reference www cnblogs com kuangbin archive 2011 08 04 2127291 html 题意 给
  • Educational Codeforces Round 67 (Rated for Div. 2)

    contest链接 A Stickers and Toys time limit per test 2 seconds memory limit per test 256 megabytes input standard input out
  • Sonarlint问题汇总

    1 Fields in a Serializable class should either be transient or serializable 说明 类属性中存在不能被序列化的属性 一般是对象 如 public class Addr
  • eMMC RPMB分区介绍

    EMMC标准中 将内部的 Flash Memory 划分为 4 类区域 最多可以支持 8 个硬件分区 如下图所示 一般情况下 Boot Area Partitions 和 RPMB Partition 的容量大小通常都为 4MB 部分芯片厂
  • CentOS7.X修改网卡名称为eth*

    修改相关配置文件 vi etc default grub cd etc sysconfig network scripts sed i s ens32 eth0 g ifcfg ens32 sed i s ens33 eth1 g ifcf
  • 虚幻4(UE4) 读取XML文件方式

    虚幻4引擎 读取XML文件 1 导入XmlParser模块 2 1读取方式一 从根节点读 读XML文档 TSharedPtr
  • PHP生成带参数的小程序码

    生成小程序码并携带参数 我们平时在开发微信小程序时 会遇到如下场景 需要制作某个推广链接 然后需要生成一个专属小程序码 扫描这个专属二维码时 获取到推广的链接携带的参数跳转到指定的界面 这个看似很难 其实特别简单 阅读微信官方的接口就很容易
  • 使用JSON.parse()转化成json对象需要注意的地方

    相信大部分人都知道或者去百度检索都会得到将js中的字符串转化成json对象常见的3种方法 举例 var str name 小明 age 18 将字符串转化json对象 1 var json JSON parse str 2 var json