`

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

 
阅读更多

使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。

 

ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。

 

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

 

Js代码 复制代码 收藏代码
  1. function strToJson(str){   
  2.      var json = eval('(' + str + ')');   
  3.      return json;   
  4. }  
function strToJson(str){
     var json = eval('(' + str + ')');
     return json;
}

 

记得别忘了str两旁的小括号。

 

为什么要加括号?

加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval("{}"); // return undefined

alert(eval("({})");// return object[Object]

 

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

 

Js代码 复制代码 收藏代码
  1. function strToJson(str){   
  2.     var json = (new Function("return " + str))();   
  3.     return json;   
  4. }  
function strToJson(str){
    var json = (new Function("return " + str))();
    return json;
}

 

3,使用全局的JSON对象,如下:

 

Js代码 复制代码 收藏代码
  1. function strToJson(str){   
  2.     return JSON.parse(str);   
  3. }  
function strToJson(str){
    return JSON.parse(str);
}

 

目前 IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法,以下是部分资料:

 

http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx

https://developer.mozilla.org/en/Using_JSON_in_Firefox

 

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

 

Js代码 复制代码 收藏代码
  1. var str = '{name:"jack"}';   
  2. var obj = JSON.parse(str); // --> parse error  
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error

 

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

 

 

另见:Chrome中JSON.parse的特殊实现

分享到:
评论

相关推荐

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

    本文将详细介绍三种将字符串转换为JSON对象的方法,并探讨它们的优缺点。 1. **使用`eval`函数** 这是最传统的字符串到JSON的转换方法。`eval`函数能够执行一个字符串作为JavaScript代码,因此它可以解析JSON字符...

    JS如何把字符串转换成json

    这篇文章主要介绍了JS如何把字符串转换成json,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Json格式字符串 "{"rows":[{"date":"2018-11-19","money":"22",...

    js中将字符串转换成json的三种方式.docx

    本文将详细介绍三种将字符串转换为JSON的JS方法,并提供相关注意事项和浏览器兼容性信息。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人...

    字符串转换成json对象

    字符串转换成json对象

    将string类型xml字符串转为json字符串

    本篇文章将详细讲解如何将string类型的XML字符串转换为JSON字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    C#字符串和JSON数据类型相互转换

    总结起来,C#提供了两种主要的方式来处理JSON数据和字符串的相互转换:内置的`System.Text.Json`库和流行的第三方库`Newtonsoft.Json`。两者都能满足大部分开发需求,但在某些特定场景下,如处理复杂数据类型或追求...

    json字符串转换插件

    通过这种方式,你可以使用`JsonUtils.jsonToJavaObject()`方法将JSON字符串转换为任意指定类型的Java对象,而`JsonUtils.javaObjectToJson()`则将Java对象转换为JSON字符串。 总之,JSON字符串转换插件是Java开发中...

    json字符串转换c++类对象

    在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...

    微信小程序-xml字符串转换json格式,适用于微信小程序

    xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 <title>...

    asp字符串转json对象类

    本知识点主要关注如何将ASP中的字符串转换为JSON对象,特别地,这个过程是通过原生的VBScript(Visual Basic Script)实现的,而不是依赖于第三方库。 首先,我们需要理解VBScript中的JSON解析概念。由于ASP.NET...

    json2.js 字符串转转json对象工具

    1. `JSON.parse()`方法用于将一个JSON字符串转换为JavaScript对象。在JSON中,数据被表示为键值对(key-value pairs)的集合,而JavaScript对象正是以这种方式存储数据。例如,如果你有一个JSON字符串`'{"name": ...

    将json字符串转换为对象

    本篇文章将深入探讨如何将一个JSON格式的字符串转换为对象,这在处理网络请求响应、存储用户数据或者进行数据交换时是常见的操作。 标题提到的“将json字符串转换为对象”,实际上是在指JSON.parse()方法,这个方法...

    Json对象与json字符串互相转换处理工具

    Json对象与json字符串互相转换处理工具

    js 将json字符串转换为json对象

    当你从服务器获取到一个JSON格式的响应或者需要将数据以JSON格式发送到服务器时,就需要将JSON字符串转换为JSON对象,或者反之。本篇将详细介绍如何在JavaScript中进行这样的操作。 首先,要将JSON字符串转换为JSON...

    js中将字符串转换成json的三种方式

    在JavaScript中,将字符串转换为JSON对象是常见的操作,特别是在处理服务器与客户端的数据交换时。在ECMAScript的早期版本中,JSON(JavaScript Object Notation)并未被正式纳入标准,但在ECMAScript 5(ECMA-262 ...

    json特殊字符串转换

    本篇文章将深入探讨JSON中的特殊字符串转换,以及如何正确处理它们。 一、JSON特殊字符与转义 在JSON中,字符串必须用双引号(")括起来。如果字符串内部需要包含双引号,或者其他特殊字符如反斜杠(\)、换行符...

    json转换jsonschema

    1. **解析JSON数据**:首先,需要解析JSON字符串为JavaScript对象。 2. **分析数据结构**:遍历JSON对象,识别其类型、属性、值等信息。 3. **构建JSON Schema**:根据分析结果,创建相应的JSON Schema对象。 4. **...

Global site tag (gtag.js) - Google Analytics