IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

JSON对象和字符串之间的相互转换

WEB前端开发 2011-07-30 20:35:01 累计浏览 3,689 次
本机暂存

比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:


var a={\"name\":\"tom\",\"sex\":\"男\",\"age\":\"24\"};
var b=\'{\"name\":\"Mike\",\"sex\":\"女\",\"age\":\"29\"}\';
1 var a={\"name\":\"tom\",\"sex\":\"男\",\"age\":\"24\"};
2   
3 var b=\'{\"name\":\"Mike\",\"sex\":\"女\",\"age\":\"29\"}\';

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。

JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

上面的转换可以这么写:


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
01 var a={\"name\":\"tom\",\"sex\":\"男\",\"age\":\"24\"};
02   
03 var b=\'{\"name\":\"Mike\",\"sex\":\"女\",\"age\":\"29\"}\';
04   
05 var aToStr=JSON.stringify(a);
06   
07 var bToObj=JSON.parse(b);
08   
09 alert(typeof(aToStr));  //string
10   
11 alert(typeof(bToObj));//object

JSON.stringify()

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对象,


var c=\'{\"name\":\"Mike\",\"sex\":\"女\",\"age\":\"29\"}\';
var cToObj=eval(\"(\"+c+\")\");
alert(typeof(cToObj));
1 var c=\'{\"name\":\"Mike\",\"sex\":\"女\",\"age\":\"29\"}\';
2 var cToObj=eval(\"(\"+c+\")\");
3 alert(typeof(cToObj));

jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,350)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,405)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,934)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,849)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,764)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,224)
  8. 什么是全栈工程师? (累计阅读 14,039)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)
  10. 7 天打造前端性能监控系统 (累计阅读 11,190)