javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JSON 基本使用

JSON 基本使用教程

作者:兮动人

JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式,这篇文章主要介绍了JSON 基本使用教程,需要的朋友可以参考下

1. JSON 是什么?

2. JSON 的语法规则是怎样的?

JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:

{
	"name": "xdr630",
	"favorite": "programming"
}

3. JSON 和 XML

JSON常被拿来与XML做比较,因为JSON 的诞生本来就多多少少要有取代XNL的意思。相比 XML,JSON的优势如下:

两者比较

JSON:

{
	"name":"兮动人",
	"age":22,
	"fruits":["apple","pear","grape"]
}

XML:

<root>
	<name>兮动人</name>
	<age>22</age>
	<fruits>apple</fruits>
	<fruits>pear</fruits>
	<fruits>grape</fruits>
</root>

4. JSON的解析和生成(JSON 和 JS 对象互转)

JSON 和 JS 对象互转

要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

<script>
	var str = '{"name": "兮动人","age":22}';
	var obj = JSON.parse(str);
	console.log(obj);
</script>

2.要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

<script>
	var str = '{"name": "兮动人","age":22}';
	var obj = JSON.parse(str);
	console.log(obj);
        
	var jsonstr = JSON.stringify(obj);
	console.log(jsonstr);
</script>

5. JSON格式规定

1、对象(0bject)

  1. 使用英文的逗号(“,”),不要用中文的逗号(“”)
  2. 最后一个“名称/值对“之后不要加逗号

正确写法

2、数组(Array)

数组表示一系列有序的值,用方括号(“[]”)包围起来,并列的值之间用逗号分隔,请看概念图。

例如,以下的数组是合法的:

[1,2,"three","four",true,false,null,[1,2],{"name":"兮动人"}]

3、名称/值对(Name/Value)

字符串(string)的规则如下:

转义字符

{
"string":"\\ \" "
}

数值类型,可以使用科学计数法表示

{
"number":1e3,
"n1":1e2,
"n2":-100
}

6. 字符串转化成对象

使用eval()

使用JSON.parse()

使用第三方库,例如JQuery等

1、 eval()

<script>
	var str = "console.log('hello')";
	eval(str);
</script>

eval 解析字符串的结果:

<script>
	var str = '{"name":"兮动人","age":22}';
	var obj = eval("("+str+")");
	console.log(obj)
</script>

2、JSON. parse()

案例:JSON字符串转换为JS对象

<script>
	var str = '{"name":"兮动人","age":22}';
	var obj = JSON.parse(str)
	console.log(obj)
</script>

案例:

<script>
	var str = '{"name":"兮动人","age":22}';
	var obj = JSON.parse(str,fun);
	function fun(name,value){
		console.log(name+":"+value);
		return value
	}
	console.log(obj)
</script>

可以做判断处理,当JSON字符串的 name=age 时,设置age的value=14

<script>
	var str = '{"name":"兮动人","age":22}';
	var obj = JSON.parse(str,fun);
	function fun(name,value){
	if (name == "age")
		value = 14;
		return value
	}
 	console.log(obj)
</script>

7. JS对象转化为字符串

1、参数的含义

JSON.stringify(value[, replacer[, space]])

案例:

<script>
        var obj = {
            name: "兮动人",
            age: 22
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,fun);

        function fun(name,value) {
            if (name=="age")
                value = 18;
                return value;
         }

        console.log(jsonstr)

</script>

<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["a","b","c"]);
        
        console.log(jsonstr)
</script>

把顺序改下,对应转换的JSON字符串的数值不变

var jsonstr = JSON.stringify(obj,["c","a","b"]);

3.space:可以省略。这是为了排版、方便阅读而存在的。可以在JSON字符串中添加空白或制表符等。

2、value的用法

<script>
var obj = {
            name: "兮动人",
            age: 22
        }
	console.log(obj);
	var jsonstr = JSON.stringify(obj);
	console.log(jsonstr)
</script>

<script>
	var obj = {
            name: "兮动人",
            age: 22,
            a: undefined,
            f: function () {

            },
            b:[function () {}]
        }
	console.log(obj);
	var jsonstr = JSON.stringify(obj);
	console.log(jsonstr)        
</script>

3、replace的用法

4、space的用法

案例:在上面的基础上添加

<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["c","a","b"],"one");

        console.log(jsonstr)
</script>

改成制表符:\t

<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["c","a","b"],"\t");

        console.log(jsonstr)
</script>

到此这篇关于JSON 基本使用教程的文章就介绍到这了,更多相关JSON 基本使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文