json:javascript 对象表示法(javascript object notation),其实json就是一个javascript的对象(object)而已。
如有不清楚json,可以去w3cschool了解http://www.w3school.com.cn/json/
1.在javascript中新建一个字符串(json文本)。
var txt = '{ employees : [' +'{ firstname:bill , lastname:gates },' +'{ firstname:george , lastname:bush },' +'{ firstname:thomas , lastname:carter } ]}';
由于 json 语法是 javascript 语法的子集,javascript 函数 eval() 可用于将 json 文本转换为 javascript 对象。
eval() 函数使用的是 javascript 编译器,可解析 json 文本,然后生成 javascript 对象。必须把文本包围在括号中,这样才能避免语法错误:
var obj = eval (( + txt + ));
注意:eval() 函数可编译并执行任何 javascript 代码。这隐藏了一个潜在的安全问题。
使用 json 解析器将 json 转换为 javascript 对象是更安全的做法。json 解析器只能识别 json 文本,而不会编译脚本。
在浏览器中,这提供了原生的 json 支持,而且 json 解析器的速度更快。
较新的浏览器和最新的 ecmascript (javascript) 标准中均包含了原生的对 json 的支持。
字符串转json对象:json.parse(jsonstr);
json对象转json字符串:json.stringify(jsonobj);
jquery方法:
json字符串转json对象:jquery.parsejson(jsonstr);
通过 json 字符串来创建对象first name:
last name:
2.那么如何遍历json数组呢?可以把它当成一个普通的javascript对象来处理。
如何遍历json数组
ie8(兼容模式),ie7和ie6没有json对象,不过http://www.json.org/js.html提 供了一个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));
以上内容是针对js中json对象和string之间的互转及处理技巧,希望对大家有所帮助。接下来给大家补充点知识javascript中string和json之间的转换。
下面给大家介绍w3c标准的浏览器(如火狐、chrome等)是有一个对象json(注意是大写)专门用来处理json的。这个对象有两个函数:
json.parse(text) //用于解析json;
json.stringify(object) //用于生成json格式;
早期的ie版本没有这个对象,可以去json的官方网站自行下载json2.js对付早期ie版本http://www.json.org
下面是之前的一些方法,现在可以弃用了
1.旧方法
function strtojson(str){ var json = eval('(' + str + ')'); return json; }
2.常用
function strtojson(str){ return (new function(return + str))(); }
3.ie不支持的方法
function strtojson(str){ return json.parse(str); }
4.jquery方法
parsejson: function( data ) { if ( typeof data !== string || !data ) { return null; } data = jquery.trim( data ); if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:[\\\/bfnrt]|u[0-9a-fa-f]{4})/g, @) .replace(/[^\\\n\r]*|true|false|null|-?\d+(?:\.\d*)?(?:[ee][+\-]?\d+)?/g, ]) .replace(/(?:^|:|,)(?:\s*\[)+/g, )) ) { return window.json && window.json.parse ? window.json.parse( data ) : (new function(return + data))(); } else { jquery.error( invalid json: + data ); } },
