`

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

阅读更多
什么是JSON

JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法。JSON也是一种轻量级数据交换格式。JSON非常易于人阅读与编写,同时利于机器解析与生成。JSON是在AJAX中代替XML交换数据的更佳方案。

JSON格式与语法

var jsonobject=
{
        //对象内的属性语法(属性名与属性值是成对出现的)
        propertyname:value,

        //对象内的函数语法(函数名与函数内容是成对出现的)
        functionname:function(){...;}
};

jsonobject -- JSON对象名称
propertyname -- 属性名称
functionname -- 函数名称
一对大括号,括起多个"名称/值"的集合
JSON使用"名称/值"对的集合表示,也可以被理解为数组(Array)
属性名或函数名可以是任意字符串,甚至是空字符串(见下面示例)
逗号用于隔开每对"名称/值"对





字符串格式json转化成json对象有3种方式:
1:js下用eval生成JSON对象  ---通过eval() 函数可以将JSON字符串转化为对象。
2:使用函数方式
3:使用js的json库或者jQuery提供的js库  --- 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
		<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>字符串格式json如何转化成json对象</title>
		<style type="text/css"></style>
		<script type="text/javascript">
			//方法1:js下用eval生成JSON对象
			function strJsonToJsonByEval(jsonData){ 
				var json = eval("(" + jsonData +")");//转换为json对象   
				return json;
			}
			
			//方法2:使用函数方式
			function strJsonToJsonByFunction(jsonData){ 
			  return ( new Function("return "+jsonData) )(); 
			}
            
            window.onload = function() {
            	var jsonData = " {name1:'1',value1:'a',name2:'2',value2:'b' }";
				var json1 = strJsonToJsonByFunction(jsonData);
				alert("Function || " + json1.name1 + "  ---  " + json1.name2);
				
				var json2 = eval("(  {name1:'1',value1:'a',name2:'2',value2:'b' } )");
				alert("eval(\"(\"jsonData\")\")  || " + json2.value1 + "  ---  " + json2.value2);
				
				var json3 = strJsonToJsonByEval(jsonData);
				alert("Eval || " + json3.value1 + "  ---  " + json3.value2);
            }
		</script>
		</head>
		<body>
		</body>
</html>


写成一个方法:
/*
			 * @method 将拼接好字符串格式的json 转成json对象
			 * @param jsonData param fomart:
			 * var jsonData = "{name1:'1',value1:'a',name2:'2',value2:'b' }";
			 * @return json;
			 */
			function strJsonToJson(jsonData){ 
				//方法1:js下用eval生成JSON对象
				//var json = eval("(" + jsonData +")");//转换为json对象   
				//return json;
				//方法2:使用函数方式
			  return ( new Function("return "+jsonData) )(); 
			}






===========================================================================

3、jQuery


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery插件方式解析json</title>

<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript" src="jquery.json-2.4.js"></script>
<script type="text/javascript">
/*
jquery-1.9.1.js 提供的方法。
jQuery.parseJSON( json ) 返回: Object
接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript 对象。

传入格式有误的 JSON 字符串可能导致抛出异常。例如,下面这些 JSON 字符串格式都不对:
{test: 1} (test 没有使用双引号包裹).
{'test': 1} ('test' 用了单引号而不是双引号包裹).
另外,如果你什么都不传入,或者传入空字符串、null、undefined 等,parseJSON 都会返回 null 。如果浏览器原生实现了 JSON.parse, jQuery 则会使用它来解析字符串。
*/
var strJson = '{"name":"John"}';
//var strJson = "{name:'John'}";//错误格式,必须严格满足一个标准格式的 JSON 字符串,key--value 都用双引号包裹
var obj = jQuery.parseJSON(strJson);
alert( obj.name === "John" ); // true

var obj2 = $.parseJSON(strJson);
alert( obj2.name  ); //John


/*
jquery.json-2.4.js 提供的方法。
下面的方法在接受一个标准格式的 JSON 字符串 并不是很严格,只要是键值对形式的都可以。
http://code.google.com/p/jquery-json/
toJSON: Serializes a javascript object, number, string, or array into JSON.
evalJSON: Converts from JSON to Javascript, quickly, and is trivial.
*/

//Json Object
var json = { plugin: 'jquery-json', version: 2.4 };

//toJSON: Json Object ---> String Json
var encoded = $.toJSON( json );// '{"plugin":"jquery-json","version":2.4}'
 
//evalJSON: String Json ---> Json Object
var jsonObject = $.evalJSON( encoded );
 
var name = $.evalJSON( encoded ).plugin;// "jquery-json"
var version = $.evalJSON(encoded).version;// 2.4

alert( "toJSON: "  + encoded + " ,typeof "  + typeof encoded + "\r\n\r\n" 
	 + "evalJSON: "  + jsonObject + " ,typeof "  + typeof(jsonObject) + "\r\n\r\n" 
     + "name= " + name + " , version= " + version );

</script>
</head>

<body>
</body>
</html>





分享到:
评论

相关推荐

    asp字符串转json对象类

    题目中提到的"asp字符串转json对象类"就是这样一个功能,它允许开发者将JSON格式的字符串转换为VBScript可以操作的对象。 在VBScript中,对象的属性通常通过"obj.property"的方式访问,但根据描述,这里的JSON对象...

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

    总的来说,json2.js是解决JSON处理兼容性问题的一个工具,它提供了一种安全且标准化的方式来在JavaScript中进行JSON字符串与对象之间的转换,尤其对于那些不支持原生JSON操作的老版本浏览器而言。

    js中的json对象和字符串之间的转化

    2. **字符串与JSON对象之间的转化**:JavaScript提供了两个内置函数来实现这种转化:`JSON.stringify()`用于将JavaScript对象转换为JSON字符串,`JSON.parse()`用于将JSON字符串转换回JavaScript对象。 **描述中的...

    javascript处理json字符串和json对象的类(含示例)

    在JavaScript中,可以使用`JSON.parse()`方法将一个JSON格式的字符串转换为JavaScript对象。这个方法接收一个JSON字符串作为参数,返回的是解析后的JavaScript对象。例如: ```javascript let jsonString = '{"name...

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

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

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    javascript对象转换成json

    在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...

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

    在C#中,我们主要依靠`System.Text.Json`或`Newtonsoft.Json`库(也称为Json.NET)来实现字符串与JSON对象之间的转换。本篇文章将详细探讨如何使用这两种方法进行转换。 首先,让我们关注`System.Text.Json`,这是...

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

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

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

    在IT行业中,数据交换和存储经常需要在不同的格式之间转换,XML(可扩展标记语言)和JSON(JavaScript对象表示法)就是两种常见的数据格式。XML以其结构化和语义化的特性,广泛应用于Web服务和数据交换,而JSON因其...

    由php对象生成json字符串 把php对象变成json字符串.zip

    在PHP中,将PHP对象转换成JSON(JavaScript Object Notation)字符串是一项常见的任务,尤其是在进行Web开发时,因为JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送数据,并在客户端进行解析。...

    json字符串格式化工具

    "json字符串格式化工具"是针对JSON数据进行美化和整理的工具,主要功能包括将紧凑的JSON字符串转换为易于阅读的格式,添加缩进、换行,以及高亮显示键值对等。这对于开发者调试API接口、查看JSON响应或者理解复杂...

    json转化工具,字符串格式化工具,方便又快捷

    - **字符串到JSON转换**:将普通的字符串转化为标准的JSON格式,自动识别并处理非法字符和格式。 - **格式化JSON**:接收未格式化的JSON字符串,将其转换为具有缩进和换行的易读格式。 - **验证JSON**:检查输入...

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    C语言检测字符串是否为json字符串

    在进行数据交互时,我们常常需要检查一个字符串是否符合JSON的格式规范,这就是`C语言检测字符串是否为json字符串`这个主题所关注的问题。 C语言本身并不直接支持JSON解析,因此我们需要借助第三方库或者自定义函数...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    通过使用如`Gson`这样的库,我们可以轻松地在Java对象和JSON字符串之间进行转换,从而实现数据的有效传输和存储。在实际项目中,务必注意处理可能出现的异常情况,如无效的JSON格式,以及确保数据的安全性。

    js json字符串转对象

    反之,`JSON.parse()` 用于将JSON字符串转换回JavaScript对象,使得数据可以在JavaScript环境中使用。这就是所谓的反序列化。例如,我们已有如题所示的JSON字符串`jsonString`,可以使用以下代码将其转换为对象: ...

    C实现的 json格式字符串与结构体转化

    本项目基于`cjson`库,扩展了功能,实现了JSON格式字符串与C结构体之间的自动转化。这种转化能力使得C程序能够更加便捷地处理JSON数据,无需手动解析和构建JSON字符串,提高了开发效率和代码的可读性。 在C语言中,...

    将web Form 的数据转化成json字符串及json对象进行处理的JS

    4. **转换为JSON字符串**:使用JavaScript内置的`JSON.stringify`方法将构建好的对象转换为JSON字符串。 5. **处理JSON对象**:如果需要在客户端进一步处理JSON数据,可以将其解析为JavaScript对象,使用`JSON....

Global site tag (gtag.js) - Google Analytics