详解json数据

    技术2022-07-11  81

    什么是json数据 存储和交换文本信息的语法格式 xml也是一种常用的格式,但是json比xml更轻量一些

    特点

    复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。字符串必须使用双引号表示,不能使用单引号。对象的键名必须放在双引号里面。数组或对象最后一个成员的后面,不能加逗号。

    json对象格式和js对象

    区别JSONJavascript含义仅仅是一种数据格式表示类的实例传输可以跨平台数据传输,速度快不能传输表现

    1.键值对方式,键必须加双引号

    2.值不能是方法函数,不能是undefined/NaN

    1.键值对方式,键不加引号

    2.值可以是函数、对象、字符串、数字、boolean 等

    相互转换

    Json转换Js对象

    1.JSON.parse(JsonStr);(不兼容IE7)

    2.eval("("+jsonStr+")");(兼容所有浏览器,但不安全,会执行json里面的表达式?)

    js对象转换Json

    JSON.stringify(jsObj);

    其他调用JSON官网的JS,实现parse和stringify在各个浏览器的兼容: // json对象 { "name": "jack", "age": 12, "address": { "province": "江西", "city": "宜春" }, "hoby": null, "phone": ["小米", "苹果", "锤子"] } // js对象 { name: 'jsck', age: 18 }

    json数组格式 特点:就是由json对象组成的数组,最外层是[]

    [{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }]

    json压缩:将JSON压缩成一行,去掉换行和空格字符

    // 压缩前 [{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }] // 压缩后 [{"name":"jack","age":18},{"name":"lisa","age":20}]

    json转义:将JSON中的双引号""前面添加转义符号\,利于拼接字符串

    // 转义前 [{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }] // 转义后 [{ \"name\": \"jack\", \"age\": 18 }, { \"name\": \"lisa\", \"age\": 20 }] // 压缩并转义后 [{\"name\":\"jack\",\"age\":18},{\"name\":\"lisa\",\"age\":20}]
    Processed: 0.011, SQL: 9