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