关于字符串和对象互转以及JSON.parse()的坑

yizhihongxing

关于字符串和对象互转以及JSON.parse()的坑,涉及到前端开发中的常见问题。下面就从以下三个方面进行详细讲解:

  1. JSON.parse()的使用
  2. 对象转字符串
  3. 字符串转对象

1. JSON.parse()的使用

1.1. JSON.parse()的作用

将JSON字符串转换成JavaScript对象或数据结构。

1.2. JSON.parse()的限制

JSON.parse()只能解析符合JSON规范的字符串,否则会报错。

示例1:

var obj = {
  name: '小明',
  age: 18
};
var str = JSON.stringify(obj);
var result = JSON.parse(str);
console.log(result);

输出结果为:

{ name: '小明', age: 18 }

示例2:

var str = "{ name: '小明', age: 18 }";
var result = JSON.parse(str);
console.log(result);

输出结果为:

Uncaught SyntaxError: Unexpected token n in JSON at position 2

1.3. JSON.parse()的注意事项

当JSON.parse()解析一个符合规范但是内容包含了JavaScript表达式的字符串时,可能会引发安全问题。

示例3:

var str = '{"name":"小明", "age": 18, "func": function() {console.log("Hello World")}}';
var result = JSON.parse(str);
console.log(result);

输出结果为:

Uncaught SyntaxError: Unexpected token f in JSON at position 32

2. 对象转字符串

2.1. JSON.stringify()的作用

将JavaScript对象或数据结构转换成JSON字符串。

2.2. JSON.stringify()的注意事项

在将JavaScript对象或数据结构转换成JSON字符串时,需要注意对原始类型的转换规则。Infinity、NaN和null在转换成JSON字符串时会被转换成null,undefined和函数则无法通过JSON.stringify()转化。

示例4:

var obj = {
  name: '小明',
  age: null,
  hobby: ['篮球', '游泳', '电影'],
  children: {
    son: '小红',
    daughter: '小兰'
  },
  func: function() {console.log('Hello World')}
};
var str = JSON.stringify(obj);
console.log(str);

输出结果为:

{"name":"小明","age":null,"hobby":["篮球","游泳","电影"],"children":{"son":"小红","daughter":"小兰"}}

示例5:

var obj = {
  name: '小明',
  age: undefined,
  func: function() {console.log('Hello World')}
};
var str = JSON.stringify(obj);
console.log(str);

输出结果为:

{"name":"小明"}

3. 字符串转对象

3.1. eval()的作用

将字符串解析为JavaScript代码并执行。

3.2. eval()的注意事项

在执行eval()函数时,需注意安全问题。如果被解析的字符串中包含了来自外部的不受信任的脚本,则有可能被注入恶意代码。

示例6:

var str = "({name:'小明',age:18})";
var obj = eval(str);
console.log(obj);

输出结果为:

{name: "小明", age: 18}

示例7:

var str = "alert('Hello World');";
eval(str);

输出结果为:

弹出警告框"Hello World"

以上就是关于字符串和对象互转以及JSON.parse()的坑的攻略,希望能帮助到开发者避免常见的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于字符串和对象互转以及JSON.parse()的坑 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JQUERY操作JSON实例代码

    下面是关于“JQUERY操作JSON实例代码”的完整攻略。 什么是JSON JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,在前端开发中经常用来进行数据传输和交换。JSON格式的数据由于具有轻巧、易读、易解析的优点,被越来越广泛地用于Web前端的数据交互和传输。 JSON的语法 JSON数据用于数据交换,它是一…

    JavaScript 2023年5月27日
    00
  • 基于JavaScript表单脚本(详解)

    基于JavaScript表单脚本(详解) 1. JavaScript表单脚本概述 JavaScript表单脚本是一种可以处理HTML表单的编程语言,可以修改表单元素,验证表单数据以及提交表单,并与服务器进行通信。 主要包括以下几个方面: 访问表单元素:JavaScript可以使用document.forms或者document.getElmentById()…

    JavaScript 2023年5月18日
    00
  • Android 自定义view仿微信相机单击拍照长按录视频按钮

    关于“Android 自定义view仿微信相机单击拍照长按录视频按钮”的攻略,我可以提供以下步骤: Step 1:确定需求和功能 在开始编写自定义View之前,首先需要明确需求和功能。在这个场景中,我们需要一个按钮,它包含两种模式,即短按拍照和长按录视频。并且在使用过程中需要给用户一些反馈,比如按下去的震动感,以及不同模式下按钮的颜色等。 Step 2:创建…

    JavaScript 2023年6月11日
    00
  • 在HTML文档中嵌入JavaScript的四种方法

    在HTML文档中嵌入JavaScript代码有以下四种方法: 方法一:直接在HTML文档中使用标签 可以直接在HTML文档中使用<script>标签将JavaScript代码嵌入到HTML文档中。一般情况下,将JavaScript代码放在<head>标签中或者在<body>标签底部都是较为常见和合适的做法。 示例: &lt…

    JavaScript 2023年5月18日
    00
  • JavaScript手写一个前端存储工具库

    标题:JavaScript手写一个前端存储工具库 简介 前端存储工具库是用于在客户端存储数据的工具,常见的有Cookie、localStorage、sessionStorage等。今天我们将学习如何手写一个前端存储工具库,以方便我们在实际开发中使用。 代码实现 我们将实现一个名为store的前端存储工具库,支持以下功能: 存储:可支持存储值类型、对象类型以及…

    JavaScript 2023年5月27日
    00
  • javascript对象的多种合并方式详解

    下面是针对 “JavaScript 对象的多种合并方式” 的完整攻略: 标题 JavaScript 对象的多种合并方式详解 简介 JavaScript 中对象合并是一种非常常见的操作,它可以让开发者把已有的对象拼接在一起,生成一个新的对象。本文将会详细讲解 JavaScript 中对象合并的多种方法。 对象合并的多种方式 Object.assign() Ob…

    JavaScript 2023年5月27日
    00
  • JavaScript使用cookie实现记住账号密码功能

    一、什么是cookie? 在介绍如何使用cookie实现记住账号密码功能前,我们先来了解一下什么是cookie。 Cookie是一种存储在用户计算机上的小文件。当用户访问网站时,网站会在用户计算机上存储一些数据,并在以后访问该网站时使用这些数据。Cookie主要用于跟踪用户,在用户浏览网站时保持用户状态以及在一段时间内记录用户在网站上的活动。 二、使用coo…

    JavaScript 2023年6月11日
    00
  • jQuery 创建Dom元素

    jQuery 是一款流行的 JavaScript 库,可以方便地操作 DOM 元素。在 jQuery 中,创建 DOM 元素有以下几种方式: 1. 使用 HTML 代码创建 可以使用 jQuery 的 $() 方法创建 DOM 元素,该方法可以接收包含 HTML 代码的字符串作为参数。例如: var div = $("<div>Hell…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部