您的位置:

解析JSJSON字符串

一、JSJSON字符串及其基本构成

JSJSON是指JavaScript Object Notation,是一种轻量级的数据交换格式。JSJSON字符串主要由对象、数组、字符串、数字、布尔值和null六种数据类型组成。

示例代码:

{
    "name": "Lucy",
    "age": 25,
    "likes": ["reading", "music", "traveling"]
}

二、JSJSON字符串转数组

JSJSON字符串可以通过JSON对象的parse方法将其转换成JavaScript的数组。

示例代码:

let jsonStr = '["apple", "orange", "banana"]';
let arr = JSON.parse(jsonStr);
console.log(arr); // ["apple", "orange", "banana"]

三、JSJSON转字符串

将一个JavaScript对象转换成JSJSON字符串,可以使用JSON对象的stringify方法。

示例代码:

let obj = {
    name: "Tom",
    age: 30,
    hobbies: ["basketball", "swimming", "reading"]
};
let jsonStr = JSON.stringify(obj);
console.log(jsonStr); // {"name":"Tom","age":30,"hobbies":["basketball","swimming","reading"]}

四、JSJSON字符串转对象

JSJSON字符串可以通过JSON对象的parse方法将其转换成JavaScript对象。

示例代码:

let jsonStr = '{"name":"Mary", "age":20, "gender":"female"}';
let obj = JSON.parse(jsonStr);
console.log(obj); // {name: "Mary", age: 20, gender: "female"}

五、JSJSON字符串转JSON对象

JSJSON字符串也可以将其转换成JSON对象,只需要在字符串前后加上圆括号即可。

示例代码:

let jsonStr = '{"city":"Beijing", "district":"Haidian"}';
let jsonObj = (JSON.parse(jsonStr));
console.log(jsonObj.city); // Beijing

六、JSJSON字符串格式没有引号

JSJSON字符串中的属性名必须加上引号,否则会报错。

示例代码:

// 错误的JSJSON字符串
let jsonStr = {name: "Jack", age: 35};

// 正确的JSJSON字符串
let jsonStr = '{"name":"Jack", "age":35}';

七、JS字符串格式

JS字符串也可以表示JSJSON字符串,只需要遵守JSJSON字符串的格式规定。

示例代码:

let str = '{"name":"Jim", "age":40}';
console.log(str); // {"name":"Jim", "age":40}

八、JS字符串堆栈

JS字符串可以使用堆栈的方式来处理JSJSON字符串。

示例代码:

let stack = [];
let str = '{"name":"Frank","age":45}';

for (let i = 0; i < str.length; i++) {
    let char = str.charAt(i);
    switch (char) {
        case '{':
        case '[':
            stack.push(char);
            break;
        case '}':
        case ']':
            stack.pop();
            break;
    }
}
if (stack.length == 0) {
    console.log("字符串为JSJSON格式!");
} else {
    console.log("字符串不是JSJSON格式!");
}

九、JS字符串合并

JS字符串的合并可以使用模板字符串的方式,构造JSJSON字符串。

示例代码:

let obj1 = {name: "Tony", age: 50};
let obj2 = {gender: "male", address: "New York"};

let jsonStr = `{"name":"${obj1.name}", "age":${obj1.age}, "gender":"${obj2.gender}", "address":"${obj2.address}"}`;

console.log(jsonStr); // {"name":"Tony", "age":50, "gender":"male", "address":"New York"}

十、JS字符串比较

当两个JSJSON字符串用等号(==)比较时,会先将其转换成JavaScript对象,再进行比较。

示例代码:

let jsonStr1 = '{"name":"Tim", "age":25}';
let jsonStr2 = '{"age":25, "name":"Tim"}';

console.log(jsonStr1 == jsonStr2); // true