超碰av在线|无码精品一区二区三区在线|伊人色色日韩一级片内射视频群批_欧美丰满少妇人妻HD高清在线_亚洲一区二区中文_亚洲无码动漫专区

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

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

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

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

一、首先看下什么是JSON

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

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

JSON是種格式:

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

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

 

二、再來看下什么是javascript對(duì)象

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

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

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

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

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

注:
準(zhǔn)確的說不叫直接量(literals),而叫初始器(Initialiser),可以在里面使用表達(dá)式
初始器有對(duì)象和數(shù)組兩種,所以有“對(duì)象直接量”,“數(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對(duì)象、JSON對(duì)象、JSON字符串

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

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

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

 

 

javascript對(duì)象和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中對(duì)象與字符串的互相轉(zhuǎn)換)

 

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




分享本文至:

日歷

鏈接

個(gè)人資料

存檔