詳解相互轉(zhuǎn)換JSON-lib包的相關(guān)介紹
在編寫(xiě)代碼前,我想確認(rèn)大家對(duì)REST都有一個(gè)很好的理解,為什么她適合JSON-lib包。首先,從技術(shù)角度上說(shuō),REST不僅僅可以應(yīng)用到API,她更多的只是一個(gè)概念,希望本文能教會(huì)你更多東西。
1、前后臺(tái)所有文件統(tǒng)一用utf-8編碼方式。
2、Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8'加在Ext.onReady塊里,此方法可以解決用EXT在POST時(shí)的中文亂碼問(wèn)題。
在JSON-lib包中設(shè)置Content-Type:text/json;charset=utf-8,在JAVA中實(shí)現(xiàn)方法:response.setContentType("text/json; charset=utf-8"),此方法可以解決用EXT在顯示后臺(tái)中文時(shí)的亂碼問(wèn)題
如果不行。試試response.setContentType("application/json; charset=utf-8")這里設(shè)置是不能放過(guò)濾器時(shí)的。原因了解一下過(guò)濾器的運(yùn)行順序就知道。#t#
JSON-lib包是一個(gè)beans,collections,maps,java arrays 和XML和JSON互相轉(zhuǎn)換的包。在本例中,我們將使用JSONObject類(lèi)創(chuàng)建JSONObject對(duì)象,然后我們打印這些對(duì)象的值。為了使用JSONObject對(duì)象,我們要引入"net.sf.json"包。為了給對(duì)象添加元素,我們要使用put()方法。
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- public class JSONObjectSample {
- //創(chuàng)建JSONObject對(duì)象
- private static JSONObject createJSONObject(){
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("name", "kevin");
- jsonObject.put("Max.score", new Integer(100));
- jsonObject.put("Min.score", new Integer(50));
- jsonObject.put("nickname", "picglet");
- return jsonObject;
- }
- public static void main(String[] args) {
- JSONObject jsonObject = JSONObjectSample.createJSONObject();
- //輸出jsonobject對(duì)象
- System.out.println("jsonObject==>"+jsonObject);
- //判讀輸出對(duì)象的類(lèi)型
- boolean isArray = jsonObject.isArray();
- boolean isEmpty = jsonObject.isEmpty();
- boolean isNullObject = jsonObject.isNullObject();
- System.out.println("isArray:"+isArray+" isEmpty:"+isEmpty+" isNullObject:"+isNullObject);
- //添加屬性
- jsonObject.element("address", "swap lake");
- System.out.println("添加屬性后的對(duì)象==>"+jsonObject);
- //返回一個(gè)JSONArray對(duì)象
- JSONArray jsonArray = new JSONArray();
- jsonArray.add(0, "this is a jsonArray value");
- jsonArray.add(1,"another jsonArray value");
- jsonObject.element("jsonArray", jsonArray);
- JSONArray array = jsonObject.getJSONArray("jsonArray");
- System.out.println("返回一個(gè)JSONArray對(duì)象:"+array);
- //添加JSONArray后的值
- //{"name":"kevin","Max.score":100,"Min.score":50,"nickname":"picglet","address":"swap lake",
- //"jsonArray":["this is a jsonArray value","another jsonArray value"]}
- System.out.println(jsonObject);
- //根據(jù)key返回一個(gè)字符串
- String jsonString = jsonObject.getString("name");
- System.out.println("jsonString==>"+jsonString);
- }
- }