zoukankan      html  css  js  c++  java
  • JSON使用与类型转换

    • JSON语法与对象
    • JSON方法与使用

     一、JSON语法与对象

    JSON是英文JavaScript Object Notation(JavaScript 对象表示法)的缩写,是存储和交换文本信息的语法。类似XML,JSON比XML更小更快更简单。

    JSON对象采用键值对的结构,所以在JS对象中Object和Array就是JSON对象,Array的索引作为键。但是在JSON的值不能是Function,如果JSON对象中存在Function在被转换成JSON文本的时候会删除该键值对。Date对象也不能以Date的对象形式存在JSON文本中,JSON对象在被转换成JSON文本时会被隐式进行String()转换操作。

    正常情况下JSON的值可以是:字符串, 数字, 对象, 数组, 布尔值或 null。

    ----JSON对象与转换:

    var arr = [1,"a",true,{o:"0"}];
    console.log(JSON.stringify(arr));//'[1,"a",true,{"o":"0"}]'

     二、JSON方法与使用

    • JSON.parse(jsoStr)
    • JSON.stringify(jsoObj)

     浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8),所以需要兼容处理:

    var jsoStr = '[1,"a",true,{"o":"0"}]'
    var json1 = eval("(" + jsonStr + ")");
    var json2 = (new Function("return " + jsonStr))();

    eval()方法的应用就不具体描述了,相信大家都懂,我们直接来看json2的实现原理:

    new Function()本质上就是用来实例化方法的构造函数,其参数以字符串的形式传入,会被解析为实例化方法的内部代码。所以在前面加上“return ”实质上就实现了JSON对象返回的语句,然后再通过立即执行函数实现了将JSON文本转换成JSON对象的效果。

    (function anonymous() {
         return [1,"a",true,{"o":"0"}]
    })

    anonymous就是new Function()内部实例化的方法。

    至于JSON.parse()的兼容方法根据我之前的类型转换博客封装就好了,主要注意function和Date对象的转换:类型和原生函数及类型转换(三:终结js类型转换)

  • 相关阅读:
    PHP操作MongoDB GridFS 存储文件
    使用PHP来开发MongoDB并在shell查看数据
    MongoDB之PHP驱动安装配置
    MongoDB之GridFS存储文件
    laya 下以光标为中心缩放对象
    canvas 鼠标位置缩放图形
    gunicorn 基础配置使用
    keras 学习笔记:从头开始构建网络处理 mnist
    web 上读取图片,并转化为指定格式
    oracle 正则表达的使用
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/10631016.html
Copyright © 2011-2022 走看看