JavaScript中字符串转Json方法小记

例如:

JSON字符串:
var str1 = ‘{ "name": "cxh", "sex": "man" }‘; 
JSON对象:
var obj= { "name": "cxh", "sex": "man" };

1、在js中把json字符串转json对象的方法不止一种,最常见的一种方式如下,使用到eval方法:

1 var jsonStr = ‘{"userName": "tiu","userAge": 26,"isMale": true}‘;
2 var json = eval("(" + jsonStr + ")");

2、使用Function来进行转换

1 var jsonStr = ‘{"userName": "tiu","userAge": 26,"isMale": true}‘;
2 var json = (new Function("return " + jsonStr))();

3、还有一种是使用JSON全局对象,不过比较可惜的是IE8以下的版本木有这个对象(囧TZ~),如果不考虑兼容IE8一下版本的话JSON全局对象是个很有用的东西,使用的代码如下:

1 var jsonStr = ‘{"userName": "tiu","userAge": 26,"isMale": true}‘;
2 //将字符串转换成JSON对象
3 var json = JSON.parse(jsonStr);
4 //将JSON对象转换成字符串
5 var str = JSON.stringify(json);

  JSON对象提供了两个很有用的方法,JSON.parse()方法接受一个字符串作为参数,返回一个json对象;JSON.stringify()方法则相反!
  PS:有一个比较常用的组建,叫做json2,这个组件也提供了一个全局对象,也是叫JSON,同样也有parse和stringify两个方法,使用这个组建可以很好的解决IE8以下版本使用不了JSON全局变量的方法,需要这个组建的话请前往这里https://github.com/douglascrockford/JSON-js,在源代码专用意见有使用说明了!

4、如果使用JQuery的话还有一个方法,就是jQuery.parseJSON()方法,和上面几个的效果一样,都是接受字符串返回json对象,代码如下:

1 var jsonStr = ‘{"userName": "tiu","userAge": 26,"isMale": true}‘;
2 var json = jQuery.parseJSON(jsonStr);

请注意Json格式:

    对于json很多人经常会这样来定义:var jsonObj = {name:"serafin", age:26}; 在这里需要注意的是,这样定义在上面几种方法中,只有前面两种方法可以正常使用,后面两种方法会出现报错!其实最标准的定义应该是这样的:var jsonObj = {"name":"serafin", "age":26}; 也就是说每个key都要用双引号括住!这样的格式在上面几种方法都可以正常使用!

时间: 2024-08-07 04:23:54

JavaScript中字符串转Json方法小记的相关文章

javascript中字符串格式json如何转化成json对象

什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于机器解析与生成.JSON是在AJAX中代替XML交换数据的更佳方案. JSON格式与语法 var jsonobject={        //对象内的属性语法(属性名与属性值是成对出现的)        propertyname:value, //对象内的函数语法(函数名与函数内容是成对出现的)  

javascript中字符串格式转化成json对象记录

什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于机器解析与生成.JSON是在AJAX中代替XML交换数据的更佳方案. JSON格式与语法 var jsonobject= {         //对象内的属性语法(属性名与属性值是成对出现的)         propertyname:value, //对象内的函数语法(函数名与函数内容是成对出现的

JavaScript中字符串截取substring/substr/slice方法总结

最近整前台总多多少少遇到一些字符串截取的小问题,忍不住仔细看了下.接下来总结一下javascript中字符串截取方法的一些应用经验和区别.看了其他博主也有写到,各有风格况且只是个人随记,自己体会的才最深刻. 一些看似简单深究又大有文章的东西弄懂了你才知道自己所学甚浅,部分内容是w3cSchool原文,然后增加了自己的总结和见解.看完有兴趣的也可以去官网查看. 以下为总结: var str = "0123456789"; //此字符串为上下文举例用 一.stringObject.subs

Javascript中字符串相关常用的使用方法总结

JavaScript的内置功能之一就是字符串连接,如果用'+'连接两个数字,表示两数相加.但是如果用于字符串,就表示第二个字符加在第一个字符之后. var num=1+2; console.log(num); var msg='hello'+'world'; console.log(msg); 对于字符串来说,除了有length属性,还有很多其他有用的属性,如: var str='hello,world'; console.log(str.length); console.log(str.cha

JavaScript中Object.prototype.toString方法的原理

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. ? 1 2 var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]" 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下:

URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)

引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. 1.  问题的引出 在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址. 但是,在实际的开发和使用中,确是有乱码情况的发生,在后台的读取keyword信息为乱码,无法正确读取. 2. 乱码是如

javascript中字符串和数组的相互转换

javascript中字符串和数组的相互转换:字符串和数组的相互转换操作是非常的重要的,因为在实际编码过程中会经常用到,所以这是必须要掌握的知识点,当然这个知识点并不难,知道了就永远知道了,并不是那种需要充分实践才能够掌握的东西,下面就做一下简单的介绍.一.字符串转换为数组:此操作会用到split()函数,它能够以指定的字符作为分隔符,将字符串转换成一个数组,实例代码如下: var Str="abc-mng-zhang-mayi"; var newArray=Str.split(&qu

JavaScript中字符串与Unicode编码的互相转换

JavaScript中字符串与Unicode编码的互相转换 这段代码演示了JavaScript中字符串与Unicode编码的转换: // 为了控制台的演示方便, 变量没有添加 var 定义 // 实际编程中请避免 // 字符串 str = "中文"; // 获取字符 char0 = str.charAt(0); // "中" // 数字编码值 code = str.charCodeAt(0); // 20013 // 编码互转 str0 = String.fromC

Javascript中String的valueOf方法

今天看了Javascript的基础教程,其中说了一个关于typeof的问题.typeof运算符的作用就是返回一个变量的类型,如果变量是一个数字,则返回number. 如果是字符串,则返回string, 布尔类型则返回boolean, 函数则返回function, 如果变量是null或者其他Javascript对象,就返回object. 未定义就返回undefined. 如果要判断变量存在,而且是一个字符串的话:给出的判断语句是: if( (typeof unknownVariable != "u