亲宝软件园·资讯

展开

JSON 基本使用教程

兮动人 人气:0

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>

加载全部内容

相关教程
猜你喜欢
用户评论