<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • JavaScript對象、JSON對象、JSON字符串的區(qū)別

    2018-8-15    seo達(dá)人

    如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

    JavaScript對象、JSON對象、JSON字符串的區(qū)別

    一、首先看下什么是JSON

    JSON:JavaScript Object Natation,JavaScript對象的表現(xiàn)形式,已經(jīng)發(fā)展成一種輕量級的數(shù)據(jù)交換格式。

    JavaScript對象的表現(xiàn)形式,指定義JS對象的一種方式。
    數(shù)據(jù)交換格式,即用于交換的數(shù)據(jù)格式。

    JSON是種格式:

    數(shù)據(jù)在鍵值對中, 數(shù)據(jù)由逗號分隔, 花括號保存對象, 方括號保存數(shù)組.
    鍵值對組合中的名稱寫在前面,值對寫在后面,中間用冒號隔開
    JSON 值可以是: 數(shù)字, 字符串, 邏輯值, 數(shù)組, 對象, null

    JSON與XML相比,JSON更輕量級,XML更重量級,目前XML更多的用作配置文件。

     

    二、再來看下什么是javascript對象

    雖然有人說JavaScript 中的所有事物都是對象,但是 javascript 中,并不是所有的值都是對象,而有兩種值類型:原始值和對象。
    (參考:http://blog.csdn.net/justjavac/article/details/8432989 JavaScript 并非所有的東西都是對象)

    JavaScript原始值:
    字符串,數(shù)字,布爾值,null,正則表達(dá)式
    注:在 JavaScript 中所有的數(shù)字都是浮點數(shù)

    JavaScript內(nèi)置對象:
    Object(基礎(chǔ)對象),
    Array(數(shù)組),
    Function(函數(shù)構(gòu)造器),
    Math(數(shù)學(xué)對象),
    String(字符串對象),
    Number(數(shù)值對象),
    Boolean(布爾對象),
    Date(日期時間),
    Error(異常對象),
    RegExp(正則表達(dá)式對象),
    Arguments(函數(shù)參數(shù)集合)
    (參考:http://www.cnblogs.com/lianzi/archive/2011/08/26/2154253.html javascript內(nèi)置對象列表及Array和String的常用方法)

    其中 Boolean, Number, String 是原始值的包裝器,很少直接使用

    JavaScript 創(chuàng)建對象的方法:
    1)使用內(nèi)置對象
    var person=new Object();//創(chuàng)建基礎(chǔ)對象實例,然后為其添加屬性
    person.firstname="Bill";
    person.lastname="Gates";
    person.age=56;
    2)自定義對象構(gòu)造
    function Person(firstname,lastname,age){//自定義對象構(gòu)造器,然后創(chuàng)建實例
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    }
    var person=new Person("Bill","Gates",56);
    //定義對象構(gòu)造器,可以使用“this”關(guān)鍵字構(gòu)造、也可以使用原型prototype構(gòu)造
    (參考:http://www.jb51.net/article/20428.htm JavaScript 三種創(chuàng)建對象的方法)
    3)使用直接量(literals 有直接量、字面量、常量等詞義)
    var arr = [obj.a, 0, obj.a+1];
    var obj = {name: 'John' + 'McCarthy'};

    注:
    準(zhǔn)確的說不叫直接量(literals),而叫初始器(Initialiser),可以在里面使用表達(dá)式
    初始器有對象和數(shù)組兩種,所以有“對象直接量”,“數(shù)組直接量”這樣的說法

    初始器基于JSON,要符合JSON語法格式,
    因此有人說JSON是JavaScript的原生格式,
    在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或者工具包

    但是初始器里面是可以有表達(dá)式的,就像例子里的一樣
    (參考:http://www.cnblogs.com/snandy/p/3439790.html JavaScript中的直接量與初始器的區(qū)別)

    原始值只包括字符串,數(shù)字,布爾值,null,正則表達(dá)式,不包括 Undefined 和 Initialiser

     

    三、JavaScript對象、JSON對象、JSON字符串

    javascript對象:javascript中,除開JavaScript原始值(字符串,數(shù)字,布爾值,null,正則表達(dá)式)的都是javascript對象

    JSON對象:JSON對象這種叫法不太準(zhǔn)確,可以理解為使用基于JSON的初始器定義的javascript對象

    JSON字符串:符合JSON語法格式的字符串

     

     

    javascript對象和JSON字符串相互轉(zhuǎn)換:
    1:jQuery插件支持的轉(zhuǎn)換方式
    $.parseJSON( jsonstr );$("xxx").serializeArray();
    2:瀏覽器支持的轉(zhuǎn)換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器
    JSON.parse(jsonstr);JSON.stringify(jsonobj);
    3:Javascript支持的轉(zhuǎn)換方式
    eval('(' + jsonstr + ')');//不推薦
    4:JSON官方的轉(zhuǎn)換方式
    引入 json.js 或 json2.js,用法同第二種
    (參考:http://www.cnblogs.com/luminji/p/3617160.html JS中對象與字符串的互相轉(zhuǎn)換)

     

    JAVA對象和JSON字符串相互轉(zhuǎn)換:
    可以用jackson、Gson和json-lib等
    (參考:http://www.blogjava.net/bolo/archive/2014/04/16/412533.html 使用jackson對Java對象與JSON字符串相互轉(zhuǎn)換的一些總結(jié))




    日歷

    鏈接

    個人資料

    存檔

    主站蜘蛛池模板: 国产精品www| 精品国产一区二区三区在线观看 | 国产精品无打码在线播放| 久久久久成人精品无码中文字幕| 国产午夜精品久久久久九九电影| 99re这里只有精品热久久| 亚洲精品WWW久久久久久| 国产成人精品一区二三区在线观看| 国产一精品一AV一免费| 亚洲午夜国产精品无码| 久久久精品视频免费观看| 99精品视频在线观看婷| 国产精品亚洲午夜一区二区三区| 最新精品亚洲成a人在线观看| 国产精品亚洲产品一区二区三区 | 国产成人精品一区二区秒拍| 亚洲精品蜜桃久久久久久| 日韩精品欧美激情国产一区| 精品少妇一区二区三区在线| 国产精品内射婷婷一级二| 91麻豆精品一二三区在线| 欧美日韩精品一区二区| 国产精品亚洲专区在线观看| 999精品在线| laowang在线精品视频| 国产精品一区二区久久国产| 日本aⅴ精品中文字幕| 亚洲国产精品乱码一区二区| 亚洲一区爱区精品无码| 亚洲精品专区在线观看| 亚洲精品视频在线观看你懂的| 欧美精品在线免费| 无码乱码观看精品久久| 无码精品前田一区二区| 中文字幕一精品亚洲无线一区| 亚洲精品人成无码中文毛片| 亚洲精品天堂成人片?V在线播放| 最新国产精品无码| 久久精品蜜芽亚洲国产AV| 精品无码日韩一区二区三区不卡| 久久精品国产亚洲精品2020|