JSON的使用方法

一、JSON是一种格式,基于文本,优于轻量,用于交换数据
json全称 (JSON JavaScript Object Notation)
json可以以数组传递,也可以以对象传递
如果没有去过JSON的官方介绍可以去一下这里,官方介绍第一、二段已经很清楚地表述了JSON是什么,我将JSON是什么提炼成以下几个方面:
一种数据格式
什么是格式?就是规范你的数据要怎么表示,举个栗子,有个人叫“唐小强”,身高“160cm”,体重“60kg”,现在你要将这个人的这些信息传给别人或者别的什么东西,你有很多种选择:
- 姓名“唐小强”,身高“160cm”,体重“60kg”
- name=”唐小强”&height=”160cm”&weight=”60kg”
- 唐小强16060
- {“name”:”唐小强”,”height”:160,”weight”:60}
- … …
以上所有选择,传递的数据是一样的,但是你可以看到形式是可以各式各样的,这就是各种不同格式化后的数据,JSON是其中一种表示方式。

在JSON中,有两种结构:对象和数组
1、对象以“{”开始,“}”结束,“key/value”之间运用 “,”分隔。

var JSON = {
    "name": "唐小强",
    "password": "123",
    move:function(){
        alert(1)
    },
    arr:[1,2,3,4,5],
    attr:1
};
JSON.weight = '65kg'; //添加
JSON.weight = '130斤'; //替换
delete JSON.weight; //删除
console.log(JSON);
//JSON.move() //执行函数
//document.write(JSON.arr[0]) //1

for(var attr in JSON){
//alert(JSON.attr) //JSON.attr会把attr当作json中的一个属性
//alert(attr)  //JSON中所有的属性名
//alert(JSON[attr]) //JSON中所有的属性值 
//alert(JSON['name']) //循环5次 唐小强
}

2、数组以“[”开始,“]”结束。值之间运用 “,”分隔。

var JSON = [{"name":"唐小强""weight":"65kg"},{"height":"175cm","love":"big"}];

JSON对象和JSON字符串的转换:
在数据传输过程中,JSON是以字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。如下:
JSON字符串:

var jsonStr = '{"name":"唐小强","height":"175cm"}';

JSON对象:

var jsonObj = {"name":"唐小强""height":"175cm"};

1、将String转化为JSON

var str = '{ "name": "txq", "sex": "man" }'; 
//var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
//var obj = eval('(' + str + ')');//由JSON字符串转换为JSON对象
//var obj = str.parseJSON();//由JSON字符串转换为JSON对象
alert(obj.name)//就可以读取

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

2、将JSON转化为String

var json = { "name": "txq", "sex": "man" };
    //var str = json.toJSONString(); //将JSON对象转化为JSON字符
    var str = JSON.stringify(json); //将JSON对象转化为JSON字符
    alert(typeof str)

注意:
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

提供一些十分强大的json解析、转换与格式化工具供大家选择使用,相信对于大家接下来的json格式数据处理会有所帮助:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

在线XML/JSON互相转换:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

猜你喜欢

转载自blog.csdn.net/tang242424/article/details/78231578