JavaScript中,JSON格式的字符串与JSON格式的对象相互转化
前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法,我也有点懵),可以称为符合JSON格式的某某对象或者字符串,例如符合JSON格式的js对象,符合JSON格式的字符串(为啥不说成符合JSON格式的js字符串,因为在所有语言中字符串都有相同的定义:数字、字母、下划线组成的一串字符)。
JSON语法中对于字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
1、JSON格式的字符串 ----> JSON格式的js对象:
- 使用JSON.parse()函数
推荐使用,如果遇到浏览器不支持这个方法,保持淡定,到JSON官网下载json2.js,并引入到当前页面,就能使用了
var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = JSON.parse(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
- 使用eval()函数
不推荐使用,会产生安全问题
var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = eval ("(" + jsonStr + ")");
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
- 使用jQuery插件jQuery.parseJSON()
var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = jQuery.parseJSON(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
补充:
JSON解析器的parse()函数对于js对象是否符合JSON格式是不加限定的
下面这种单引号套双引号的字符串,不符合JSON语法对字符串的定义,但也能使用上面三种方法转换成JSON格式的js对象
var jsonStr = '{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}';
var json = jQuery.parseJSON(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
2、JSON格式的js对象 ----> JSON格式的字符串:
- 使用JSON.stringify()
var json = {"name": "zhangsan", "age": 23, "email": "chentging@aliyun.com"};
var jsonStr = JSON.stringify(json);
console.log(jsonStr);//输出:"{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}"
补充:
与JSON解析器的parse()函数一样,stringify()对于js对象是否符合JSON格式也是不加限定的
var jsonObj = {name : "zhangsan",age : 23, email : "chentging@aliyun.com"};
var jsonStr = JSON.stringify(json);
console.log(jsonStr);//输出:"{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}"
参考文章:
(1) https://www.cnblogs.com/cdf-opensource-007/p/6384724.html
(2) https://www.cnblogs.com/longailong/p/7344567.html
JavaScript中,JSON格式的字符串与JSON格式的对象相互转化的更多相关文章
- json格式的字符串转为json对象遇到特殊字符问题解决
中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 va ...
- javascript中无法将string转化为json对象
在一次项目之中,我要对请求的相应做一些处理,得到的响应差不多是这中格式'{total:1,result:[{"age":1}]}'.可以看到我拿到的这个相应和JSON的格式是非常相 ...
- JAVA中如何将一个json形式的字符串转为json对象或对象列表
import java.util.*; import java.text.SimpleDateFormat; import org.json.JSONObject; import org.json.J ...
- JavaScript中的数组和字符串
知识内容: 1.JavaScript中的数组 2.JavaScript中的字符串 一.JavaScript中的数组 1.JavaScript中的数组是什么 数组指的是数据的有序列表,每种语言基本上都有 ...
- JavaScript中如何将html字符串转化为Jquery对象或者Dom对象
最近在开发百度地图相关的一个应用,需要从硬编码的html字符串中提取自己想要的元素以及属性信息.但是在js中或者jQuery中操作元素节点以及属性都是使用DOM对象或者jquery对象.下面将介绍如何 ...
- JAVA中如何将一个json形式的字符串转为json对象
import java.io.*; import org.json.*; public class Demo { public static void main(String[] args) thro ...
- js 如何把JSON格式的字符串转换为JSON对象
直接用eval函数.例:var str1 = '{ "url": "www.51qdq.com", "name": "js&quo ...
- ——————————JavaScript中,对String字符串的一些操作——————————
————————————————————————————————————————————————————————————————————————————————————————————— <ht ...
- Java程序、JSP以及JavaScript中如何判断某个字符串是否包含某个子串
1.JSP str:原始字符串, subStr:要查找的子字符串 <c:if test="${fn:contains(str,subStr)==true}"> < ...
随机推荐
- mysql 开发进阶篇系列 5 SQL 优化(表优化)
一. 使用sql提示 sql 提示(sql hint)是优化数据库的一个重要手段, 是在sql语句中加入一些人为的提示来达到优化操作的目的. 1.1 use index 在查询语句中表名的后面,添加u ...
- Android--UI之DatePicker、TimePicker...
前言 这一篇博客分别讲解Android平台下,关于日期和时间的几个相关控件.包括DatePicker(日期选择控件).TimePicker(时间选择控件).DatePickerDialog(日期选择对 ...
- 详解Maven用户的配置settings.xml
Maven用户设置 作者其他技术文章 1)Oracle性能优化之查询语句通用原则 2)Redis常用命令 3) SpringCloud入门之常用的配置文件 application.yml和 boots ...
- Dubbo 源码解析四 —— 负载均衡LoadBalance
欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 Dubbo 入门之二 --- 项目结构解析 Dubbo 源码分析系列之三 -- 架构原 ...
- shell脚本动画小工具
shell脚本动画小工具 看gif图: shell脚本版 脚本内容如下: #!/usr/bin/env bash ## ---------------------------------------- ...
- KeepAlived(三):vrrp实例故障转移(keepalived+haproxy)
keepalived使用脚本进行健康检查时的相关配置项.例如keepalived+haproxy实现haproxy的高可用. keepalived分为vrrp实例的心跳检查和后端服务的健康检查.如果要 ...
- ZooKeeper系列(4):ZooKeeper的配置文件详解
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk zkServer.sh读取的默认配置文件是$ZOOKEEPER_ ...
- LeetCode Animation 题目图解汇总(持续更新中...)
我会尽力将LeetCode上所有的题目都用动画的形式演示出来,期待与你见证这一天! GitHub Repo:LeetCode Animation Follow: MisterBooo · GitHub ...
- JavaScript数组入门。
JavaScript中的array对象就是数组,首先是一个动态数组,而且是一个像c#中 数组 arraylist hashtable等的综合体. var arr = [1, 7, 3, 4, 5]; ...
- 查看内置命令和非内置命令帮助的几种方法(man、help、info)
内置命令就是shell内核自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令,我们用type命令就可以看到其的类型,内置shell命令其实 ...