//////////2016-12-26 ~ 2017-1-9///////////
int study_data(){
字符集和字符編碼
字符集:字符的組合
字符編碼方式:把字符映射成二進(jìn)制數(shù)字的過(guò)程
常見(jiàn)編碼方式:ASCII,UTF-8,GB2312,GBK
亂碼問(wèn)題:編碼方式和解碼方式不匹配
JSON
JavaScript的對(duì)象表示法(JavaScript Object Notation)
JSON是存儲(chǔ)和交換文本信息的語(yǔ)法魏颓,類似XML
JSON比XML更小尝哆,更快茁瘦,更易解析
什么是JSON:
? ? 1.JSON指的是JavaScript的對(duì)象表示法(JavaScript Object Notation)
? ? 2.JSON是輕量級(jí)的文本數(shù)據(jù)交換格式
? ? 3.JSON獨(dú)立于語(yǔ)言(JSON解析器和JSON庫(kù)支持許多不同的編程語(yǔ)言)
? ? 4.JSON具有自我描述性,更易理解
JSON與XML的區(qū)別:
? ? 1.沒(méi)有結(jié)束標(biāo)簽
? ? 2.更短
? ? 3.讀寫速度更快
? ? 4.能夠使用內(nèi)建的JavaScript eval()方法進(jìn)行解析
? ? 5.使用數(shù)組
? ? 6.不使用保留字
JSON語(yǔ)法規(guī)則:
? ? 1.數(shù)據(jù)在名稱/值對(duì)中
? ? 2.數(shù)據(jù)由逗號(hào)分隔
? ? 3.花括號(hào)保存對(duì)象
? ? 4.方括號(hào)保存數(shù)組
JSON值:
? ? 1.數(shù)字(整數(shù)或浮點(diǎn)數(shù))
? ? 2.字符串(在雙引號(hào)中)
? ? 3.邏輯值(true或false)
? ? 4.數(shù)組(在方括號(hào)中)
? ? 5.對(duì)象(在花括號(hào)中)
? ? 6.null
把JSON字符串轉(zhuǎn)換為JavaScript對(duì)象的方法:
? ? 1.
? ? //由JSON字符串轉(zhuǎn)換為JSON對(duì)象
? ? var obj = eval('(' + str + ')');
? ? 或者
? ? var obj = str.parseJSON();?
? ? 或者
? ? var obj = JSON.parse(str);?
? ? 然后,就可以這樣讀取:
? ? ? ? Alert(obj.name);
? ? ? ? Alert(obj.sex);
? ? 注:如果obj本來(lái)就是一個(gè)JSON對(duì)象,那么使用eval()函數(shù)轉(zhuǎn)換后(哪怕是多次轉(zhuǎn)換)還是JSON對(duì)象术吝,但是使用parseJSON()函數(shù)處理后會(huì)有問(wèn)題(拋出語(yǔ)法異常)。
? ? 2.
? ? //將JSON對(duì)象轉(zhuǎn)化為JSON字符
? ? var last=obj.toJSONString();?
? ? 或者
? ? var last=JSON.stringify(obj);?
? ? alert(last);
注意:
? ? 上面的幾個(gè)方法中茸苇,除了eval()函數(shù)是js自帶的之外排苍,其他的幾個(gè)方法都來(lái)自json.js包。新版本的 JSON 修改了 API学密,將 JSON.stringify() 和 JSON.parse() 兩個(gè)方法都注入到了 Javascript 的內(nèi)建對(duì)象里面淘衙,前者變成了 Object.toJSONString(),而后者變成了 String.parseJSON()则果。如果提示找不到toJSONString()和parseJSON()方法幔翰,則說(shuō)明json包版本太低。
GSON
Gson是一個(gè)Java類庫(kù)西壮,用于將Java對(duì)象轉(zhuǎn)換為它們所代表的JSON數(shù)據(jù)遗增,也可以用于將一個(gè)JSON字符串轉(zhuǎn)換為對(duì)應(yīng)的Java對(duì)象。
Gson的目標(biāo)為:
? ? 1. 提供像toString()和構(gòu)造方法(工廠方法)一樣簡(jiǎn)單使用的機(jī)制來(lái)將Java對(duì) 象轉(zhuǎn)換為JSON或者反過(guò)來(lái)將JSON轉(zhuǎn)換為Java對(duì)象款青。
? ? 2. 允許將已經(jīng)存在并且不可修改的對(duì)象轉(zhuǎn)換JSON做修,或者反過(guò)來(lái)。
? ? 3. 允許為對(duì)象自定義映射關(guān)系抡草。
? ? 4. 支持任意復(fù)雜的對(duì)象饰及。
? ? 5. 生成緊湊又易讀的JSON輸出。
一般要使用Gson工具康震,需要?jiǎng)?chuàng)建一個(gè)Gson對(duì)象燎含,然后進(jìn)行相應(yīng)的操作。并且可以重用同一個(gè)Gson對(duì)象進(jìn)行多次Json序列化和反序列化操作腿短。
例如:
Gson gson = new Gson();
也可以使用GsonBuilder這個(gè)類屏箍,它允許使用參數(shù)(例如版本控制等等)來(lái)才創(chuàng)建一個(gè)Gson實(shí)例绘梦。
例如:
Gson gson = new GsonBuilder().setVersion(1.0).create();
對(duì)于使用者來(lái)說(shuō),只需要調(diào)用Gson類的toJson與fromJson方法赴魁,便可以輕松實(shí)現(xiàn)序列化與反序列化的操作卸奉。
}