关键词

字符串 对象 转换

JavaScript将JSON字符串转换为JSON对象

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一些语法结构,但是它是独立于语言的,所以几乎所有的编程语言都支持JSON。JSON数据格式在传输数据的时候非常方便,因为JSON是一种文本格式,所以可以通过文本字符串来传输数据。

在JavaScript中,JSON是以字符串的形式存在的,所以如果要使用JSON数据,需要把JSON字符串转换为JSON对象。JavaScript提供了一个内置函数JSON.parse(),可以用来将JSON字符串转换为JSON对象。

var jsonStr = '{"name":"John","age":30,"city":"New York"}';
var jsonObj = JSON.parse(jsonStr);
console.log(jsonObj);

上面的代码定义了一个jsonStr字符串,使用JSON.parse()函数将它转换为JSON对象,输出结果:

{name: "John", age: 30, city: "New York"}

JSON.parse()函数还可以接受一个函数作为参数,用来处理JSON字符串中的每个属性值,例如:

var jsonStr = '{"name":"John","age":30,"city":"New York"}';
var jsonObj = JSON.parse(jsonStr, function(key, value) {
    if (key == 'age') {
        return value + 10;
    } else {
        return value;
    }
});
console.log(jsonObj);

上面的代码中,JSON.parse()函数接受一个函数作为参数,当遍历JSON字符串的每个属性值时,都会调用这个函数,如果属性名是age,则把它的值加10,其他属性的值不变,输出结果:

{name: "John", age: 40, city: "New York"}

JSON.parse()函数还可以接受一个可选参数reviver,该参数是一个函数,用来处理转换后的JSON对象,例如:

var jsonStr = '{"name":"John","age":30,"city":"New York"}';
var jsonObj = JSON.parse(jsonStr, function(key, value) {
    if (key == 'age') {
        return value + 10;
    } else {
        return value;
    }
}, function(key, value) {
    if (key == 'name') {
        return 'Mr. ' + value;
    } else {
        return value;
    }
});
console.log(jsonObj);

上面的代码中,JSON.parse()函数接受第三个参数reviver,用来处理转换后的JSON对象,如果属性名是name,则把它的值改为Mr. + value,其他属性的值不变,输出结果:

{name: "Mr. John", age: 40, city: "New York"}

JSON.parse()函数可以用来将JSON字符串转换为JSON对象,它支持多种参数,可以用来处理JSON字符串中的每个属性值,也可以用来处理转换后的JSON对象。

本文链接:http://task.lmcjl.com/news/2782.html

展开阅读全文