1、Json 概述
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
本文主要是对JS操作JSON的要领做下总结。
在JSON中,有两种结构:对象和数组。
1)一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2)数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象
var str2 = { "name": "cxh", "sex": "man" };
2、Json字符串转为Json对象
三种方式
var obj = eval('(' + str + ')');
var obj = str.parseJSON();
var obj = JSON.parse(str);
3、JSON对象转化为JSON字符串
两种方式
var last=obj.toJSONString();
var last=JSON.stringify(obj);
4、Json读取
var str = '{ "name": "cxh", "sex": "man" }';
var obj = str.parseJSON();
Alert(obj.name);
数据组
var str='[{"name":"cxh","sex":"man"},{"name":"cxh1","sex":"man1"}]';
var obj = str.parseJSON();
alert(obj[0].name)
5、注意事项
上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低
6、code
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/json3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var data1 = "[{\"name\":\"alex\"},{\"name\":\"Bom\"},{\"name\":\"Ton\"}]";
var string_to_json = JSON.parse(data1);
console.info(string_to_json);
var json_to_string = JSON.stringify(string_to_json);
console.info(json_to_string);
//String 字符串转化成Json 对象
var data2 = "[{\"name\":\"chunlynn\",\"age\":27,\"qq\":\"277539689\"},{\"name\":\"linda\",\"age\":25,\"qq\":\"123456789\"}]";
var jsondata1 = JSON.parse(data2);
console.info(jsondata1);
console.info("姓名:"+jsondata1[0].name);
console.info("年龄:"+jsondata1[0].age);
console.info("qq:"+jsondata1[0].qq);
console.info("qq:"+jsondata1[0]["qq"]);
console.info(jsondata1 instanceof Array); //true
console.info("jsondata[0]的JS类型: "+ typeof jsondata1[0]);
console.info("age的JS类型: "+ typeof jsondata1[0].age); //number
console.info("qq的JS类型: "+ typeof jsondata1[0].qq); //string
console.info("data的JS类型: "+ typeof data2);
//将JSON对象序列化为JSON字符串
var jsondata2 = JSON.stringify(data2);
console.info(jsondata1);
console.info("jsondata的JS类型: "+ typeof jsondata2);
//更多用法
var jsondata3 = JSON.parse(data2, function (key, value) {
if (typeof value == "number") {
value = value+1000;
}
return value;
});
console.info("姓名2:"+jsondata3[0].name);
console.info("年龄2:"+jsondata3[0].age);
console.info("qq2:"+jsondata3[0].qq);
});
</script>
</head>
<body>
</body>
</html>
https://bestiejs.github.io/json3/#section_1
https://www.cnblogs.com/liuqiyun/p/8594898.html
https://blog.csdn.net/chenchunlin526/article/details/78850996
网友评论