json对象和字符串的相互转换

1、json对象和字符串的转换

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()parse()方法。
JSON.stringify(obj)       将JSON对象转为字符串。
JSON.parse(string)       将字符串转为JSON对象格式。

 //使用json中的parser方法转换;

 var str='{"name":"fendouer", "age":23}';      //这是一个json字符串''
var ob=JSON.parse(str) ; //返回一个新对象
console.log(ob.name) //把json中的stringify对象转换成字符串 var obj={"student":[{"name":"cyl","age":"21"},{"name":"hyj","age":"23"}]}; //这是一个json对象
var str=obj.student[0].name;
var newstr=JSON.stringify(str); //返回一个新字符串
console.log(newstr);

简单例子:

 var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a); //对象转换成字符串
var bToObj=JSON.parse(b); //字符串转换成对象
alert(typeof(aToStr)); //string
alert(typeof(bToObj)); //object
JSON.stringify();

扩展:

jquery中也有将字符串转为JSON格式的方法jquery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。
这只是一种方法,还有几种方法,大家可以看一下:

1) jquery插件支持的转换方式:

$.parseJSON( jsonstr );

//jquery.parseJSON(jsonstr), 可以将json字符串转换成json对象。

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>json字符串转为json对象-jQuery.parseJSON()</title>
<style type="text/css">
p{
white-space: pre-line;
font-size: 20px;
}
</style>
</head>
<body>
<p><a href="http://www.css88.com/jqapi-1.9/jQuery.parseJSON/">资源链接:http://www.css88.com/jqapi-1.9/jQuery.parseJSON/</a></p>
<p>jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。</p>
<p>
描述: 接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript 值。 从jQuery 3.0开始,不推荐使用$.parseJSON。 要解析JSON字符串,请改用原生的 JSON.parse 方法。 传入格式有误的 JSON 字符串可能导致抛出异常。例如,下面这些无效的 JSON 字符串:
---------------------------------------------------
{test: 1} (test 没有使用双引号包裹).
{'test': 1} ('test' 用了单引号而不是双引号包裹).
"{test: 1}" (test 没有使用双引号包裹).
"{'test': 1}" ('test' 用了单引号而不是双引号包裹).
"'test'" ('test' 用单引号代替双引号).
".1" (number 必须以数字开头; "0.1" 将是有效的).
"undefined" (undefined 不能表示一个 JSON 字符串; 然而null,可以).
"NaN" (NaN 不能表示一个 JSON 字符串; 用Infinity直接表示无限也是不允许的).
--------------------------------------------------- JSON标准不允许“控制字符”如制表符或换行符。
比如$.parseJSON('{"testing":"1\t2\n3"}'),大多数实现中将抛出一个错误,因为JavaScript分析器直接转换字符串的制表符和换行符为文本的制表符和换行符;
产生双反斜杠,例如"1\\t2\\n3"是预期的结果。
这个问题往往在服务器端语言,如PHP,JSON注入到一个JavaScript文件时发生。 如果浏览器实现了原生的 JSON.parse, jQuery 则会使用它来解析字符串。 在jQuery 1.9之前,如果传递给$.parseJSON一个空字符串,null, 或者 undefined,,将返回null,而不是抛出一个错误,即使这些都不是有效的JSON。 jQuery 3.0开始,$.parseJSON已经过时(不建议使用)。要将字符串解析成JSON对象,请使用原生的JSON.parse方法来代替。 </p>
<script src="js/jquery-2.1.0.js"></script>
<script type="text/javascript">
//解析一个 JSON 字符串。
var d = '{"name":"郑秀晶","sex":"女","age":"23","height":"165","weight":"95g"}';
console.log(d) //
console.log(typeof(d)) //string var obj = jQuery.parseJSON(d);
console.log(obj) //
console.log(typeof(obj)) //object console.log( obj.name ); //郑秀晶 </script>
</body>
</html>

2) 兼容:浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 

JSON.parse(jsonstr);                     //可以将json字符串转换成json对象 
JSON.stringify(jsonobj);               //可以将json对象转换成json对符串 
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

3) JSON官方的转换方式: 
http://www.json.org/       提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()parse()方法; 
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

4) Javascript支持的转换方式(eval): 
eval('(' + jsonstr + ')');                  //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>string转object-兼容低版本浏览器(eval实现)</title>
</head>
<body>
<p style="white-space: pre-line; font-size: 18px;">
ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,
这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。 ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,
eval("("+c+")")
</p> <!--兼容ie6/7/8--引入json2.js文件-->
<script src="js/json2.js"></script>
<script type="text/javascript"> var c='{"name":"郑秀晶","sex":"女","age":"23","height":"165","weight":"95g"}';
console.log(c);
console.log(typeof(c)); //string var cToObj=eval("("+c+")");
console.log(typeof(cToObj)); //object </script>
</body>
</html>

第168天:json对象和字符串的相互转换的更多相关文章

  1. json对象与字符串的相互转换,数组和字符串的转换

    1.json对象转换为字符串 JSON.stringify(value [, replacer] [, space])  var student = new Object(); student.id ...

  2. json对象和字符串的相互转换

    JSON.stringify(obj)       将JSON对象转为字符串. JSON.parse(string)       将字符串转为JSON对象格式. 后台给你数据的时候,有时候会给你字符串 ...

  3. JSON对象与字符串之间的相互转换

    <html> <head> <meta name="viewport" content="width=device-width" ...

  4. Json数组操作小记 及 JSON对象和字符串之间的相互转换

    [{"productid":"1","sortindex":"2"},{"productid":&q ...

  5. JSON对象与字符串之间的相互转换 - CSDN博客

    原文:JSON对象与字符串之间的相互转换 - CSDN博客 <html> <head> <meta name="viewport" content=& ...

  6. js或者jq的string类型或者number类型的相互转换及json对象与字符串的转换

    1.将值乘以1,将string类型转为number类型 //算合计价值function summoney(money) { var zijin = $("#main_xm_dam09&quo ...

  7. js中的json对象和字符串之间的转化

    字符串转对象(strJSON代表json字符串)   var obj = eval(strJSON);   var obj = strJSON.parseJSON();   var obj = JSO ...

  8. json对象转字符串与json字符串转对象

    1.概述: 我们在编程时进场会遇到json对象转字符串,或者字符串转对象的情况. 2.解决办法: json.parse()方法是将json字符串转成json对象. json.stringfy()方法是 ...

  9. jquery转换json对象为字符串

    jquery转换json对象为字符串 JSON.stringify(jsonObject),可用于单个JSON对象,也可用于JSON数组 alert(JSON.stringify(jsonObject ...

随机推荐

  1. 20155213 2016-2017-2 《Java程序设计》第六周学习总结

    20155213 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 输入与输出 串流设计 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而 ...

  2. 20155339 2016-2017-2《Java程序设计》课程总结

    20155339 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 第一篇随笔:简单的叙述了一下自己对自己的专业以及对师生关系的期望. 平措卓玛的第二次随笔--论技能与 ...

  3. 20145226夏艺华 《Java程序设计》预备作业3

    安装虚拟机 上学期开学的时候就安装了Linux虚拟机,由于我的是Mac OS,所以和windows下的安装有所不同. 我使用的是VirtualBoxVM虚拟机,稳定性还不错,需要的同学可以从https ...

  4. PHP5.4 连接 SQL SERVER 2008

    PHP链接sqlserver需要先安装驱动,不是先把dll放到ext下面,一重启服务器就完事了. 本地环境: XAMPP 1.8.2 PHP 5.4.31 SQL SERVER 2008 R2 使用的 ...

  5. 《图解 HTTP 》阅读 —— 第四章

    第4章 返回结果的HTTP状态码 1XX 接收的请求正在处理 2XX 请求被处理 200 请求成功 204 请求成功,但是没有返回数据 206 客户端进行了范围请求 3XX 重定向 301 永久性重定 ...

  6. 天马行空-Ops平台建设概述

    1           概述 什么是Ops平台,Ops平台的目标是什么,建设的考虑点有哪些?本章节以实际生活中医院的例子来进行各形象的阐述. 医院包含各种诊断治疗设备,病历库,医生.一个孕妇需要到医院 ...

  7. 无人驾驶技术之Kalman Filter原理介绍

    基本思想 以K-1时刻的最优估计Xk-1为准,预测K时刻的状态变量Xk/k-1,同时又对该状态进行观测,得到观测变量Zk,再在预测与观之间进行分析,或者说是以观测量对预测量进行修正,从而得到K时刻的最 ...

  8. Mysql 表创建语句

    # 新建bigData数据库 CREATE DATABASE bigData; USE bigData; # 创建dept表 CREATE TABLE dept( id INT UNSIGNED PR ...

  9. 根据Unicode码生成汉字

    最近需要一批汉字字符数据,类似数字字符与ASCII码之间的对应关系,汉字字符与Unicode码之间也存在对应关系. 所以可以遍历Unicode码批量生成汉字. 其中,汉字为宽字符,输出时候注意需要修改 ...

  10. 原生js和jquey获取窗口宽高,滚动条,鼠标位置总结

    JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度   alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height( ...