Heim > Web-Frontend > js-Tutorial > 字符串转换成json的三种方法

字符串转换成json的三种方法

WBOY
Freigeben: 2016-06-01 09:54:18
Original
2994 Leute haben es durchsucht

采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON )。
ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。

1,eval方式解析,恐怕这是最早的解析方式了。

<code class="language-javascript">function strToJson(str){
   var json = eval('(' + str + ')');
   return json;
}</code>
Nach dem Login kopieren

记得str两旁的小括号哦。

 

2,new Function形式,比较怪异哦。

<code class="language-javascript">function strToJson(str){
  var json = (new Function("return " + str))();
  return json;
}</code>
Nach dem Login kopieren

IE6/7中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。

 

3,使用全局的JSON对象。

<code class="language-javascript">function strToJson(str){
  return JSON.parse(str);
}</code>
Nach dem Login kopieren

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下

<code class="language-javascript">var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error</code>
Nach dem Login kopieren

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage