本節(jié)摘要:之前對(duì)JSON做了一次簡(jiǎn)單的介紹,并把JSON和XML做了一個(gè)簡(jiǎn)單的比較;那么,我就在想,如果是一個(gè)json格式的字符串傳到后臺(tái),需要怎么對(duì)其處理?如果前臺(tái)頁(yè)面需要后臺(tái)返回的是一個(gè)json的字符串,那么后臺(tái)是怎么把json格式的字符串給拼裝起來(lái)的呢?JSON和XML是不是有某種聯(lián)系,他們之間是不是可以互相轉(zhuǎn)換?……帶著這些問(wèn)題,搜索了相關(guān)的資料,并自己實(shí)際動(dòng)手操作,總算對(duì)這些問(wèn)題有了個(gè)比較清晰的認(rèn)識(shí)。這些問(wèn)題主要是通過(guò)JSONObject這個(gè)插件的jar包實(shí)現(xiàn)。
JSONObject-lib包是一個(gè)beans,collections,maps,java arrays和xml和JSON互相轉(zhuǎn)換的包。
說(shuō)明:本次用到的的文件只有工程目錄json包下的JSONObject_1_3類和note.txt
做以下幾點(diǎn)約定:
1.介紹基于JSONObject 1.1的API
2.只介紹常用的類和方法
3.不再介紹此版本中已經(jīng)不再推薦使用
4.介紹的類和方法主要圍繞本篇博客中用到的
JSONObject:A JSONObject is an unordered collection of name/value pairs.
是一個(gè)final類,繼承了Object,實(shí)現(xiàn)了JSON接口
構(gòu)造方法如下:
JSONObject();創(chuàng)建一個(gè)空的JSONObject對(duì)象
JSONObject(boolean isNull);創(chuàng)建一個(gè)是否為空的JSONObject對(duì)象
普通方法如下:
fromBean(Object bean);靜態(tài)方法,通過(guò)一個(gè)pojo對(duì)象創(chuàng)建一個(gè)JSONObject對(duì)象
fromJSONObject(JSONObject object);靜態(tài)方法,通過(guò)另外一個(gè)JSONObject對(duì)象構(gòu)造一個(gè)JSONObject對(duì)象
fromJSONString(JSONString string);靜態(tài)方法,通過(guò)一個(gè)JSONString創(chuàng)建一個(gè)JSONObject對(duì)象
toString();把JSONObject對(duì)象轉(zhuǎn)換為json格式的字符串
iterator();返回一個(gè)Iterator對(duì)象來(lái)遍歷元素
接下來(lái)就是一些put/get方法,需要普通的get方法和pot方法做一下強(qiáng)調(diào)說(shuō)明,API中是這樣描述的:
A get method returns a value if one can be found, and throws an exception if one cannot be found. An opt method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.
JSONArray:A JSONArray is an ordered sequence of values.
是一個(gè)final類,繼承了Object,實(shí)現(xiàn)了JSON接口
構(gòu)造方法如下:
JSONArray();構(gòu)造一個(gè)空的JSONArray對(duì)象
普通方法如下:
fromArray(Object[] array);靜態(tài)方法,通過(guò)一個(gè)java數(shù)組創(chuàng)建一個(gè)JSONArray對(duì)象
fromCollection(Collection collection);靜態(tài)方法,通過(guò)collection集合對(duì)象創(chuàng)建一個(gè)JSONArray對(duì)象
fromString(String string);靜態(tài)方法,通過(guò)一個(gè)json格式的字符串構(gòu)造一個(gè)JSONArray對(duì)象
toString();把JSONArray對(duì)象轉(zhuǎn)換為json格式的字符串
iterator();返回一個(gè)Iterator對(duì)象來(lái)遍歷元素
接下來(lái)同樣是put/get方法……
XMLSerializer:Utility class for transforming JSON to XML an back.
一個(gè)繼承自Object的類
構(gòu)造方法如下:
XMLSerializer();創(chuàng)建一個(gè)XMLSerializer對(duì)象
普通方法如下:
setRootName(String rootName);設(shè)置轉(zhuǎn)換的xml的根元素名稱
setTypeHintsEnabled(boolean typeHintsEnabled);設(shè)置每個(gè)元素是否顯示type屬性
write(JSON json);把json對(duì)象轉(zhuǎn)換為xml,默認(rèn)的字符編碼是UTF-8,
需要設(shè)置編碼可以用write(JSON json, String encoding)
JSON:
{"password":"123456","username":"張三"}
xml
<?xml version="1.0" encoding="UTF-8"?>
<user_info>
<password>123456</password>
<username>張三</username>
</user_info>
新建web工程,工程名稱JS,導(dǎo)入以下7個(gè)jar包,文件在前面的準(zhǔn)備工作中下載路徑。
說(shuō)明:可以不用新建web工程,普通的java工程也可以完成本篇的的操作。至于為什么要導(dǎo)入處json包以外的其他6個(gè)包,我會(huì)把note.txt貼在最后,各位一看便知。
question1:后臺(tái)接受到前臺(tái)的json格式的字符串怎么處理?
新聞熱點(diǎn)
疑難解答
圖片精選