1. 程式人生 > >JSONObject(alibaba)和JsonObject(gson)

JSONObject(alibaba)和JsonObject(gson)

個人總結,不全面。後續補充。。。JSONObject(alibaba)使用JSONArray和JSONObject

需要的jar包:

commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-lang-2.4.jar
commons-logging-1.1.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar

使用的時候需要匯入的包為:

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

JSONObject用來生成Json物件。

JSONObject形式為:鍵值對的值可以為任意形式,包括可以為陣列。一個JSON物件中中可以包含多個鍵值對(可以包含陣列,但是不是陣列)。

{"key":"value"}

{"key":"value","key":"value"}

{"key":"value","key":[{"key":"value"}]}

JSONArray是用來存放Json的陣列。【new JSONArray的實體不是json物件】

JSONArray形式為:[{"key":"value"},{"key":"value","key":"value"},{"key":"value","key":[{"key":"value"},{"key":"value"}]}],陣列中包含N個JSON型別的資料JsonObject(gson)gson的JsonObject有一個非常好用的將資料轉成json型別的方法。可以將所有的物件都轉成一個json物件。import com.google.gson.Gson; import com.google.gson.GsonBuilder; /**封裝好一個方法,用來將輸入的物件轉成json型別並以字串的形式返回*/public class JsonTool { public static String toJson(Object object) {   Gson gson = new GsonBuilder().serializeNulls().create();   return gson.toJson(object);  }} 其中的Object可以是任何物件,如map、自定義的物件等。【需要注意的是,使用這個方法只能是對最終需要轉換的物件進行轉換】
以map為例:Map<String , String> map  = new HashMap<String,String>();在對map所有的賦值完畢之後,對map使用JsonTool.toJson(map)此時能返回一個正確的json形式的字串。如果在對map賦值的過程中,對map的某一個值使用了此方法,那麼在最後對map再次使用toJson就不會得到想要的結果。如:class Student{}Map<String , Object> map  = new HashMap<String,Object>();Student student = new Student();String studentMSG = JsonTool.toJson(student);map.put("student",studentMSG);JsonTool.toJson(map);//此時得到的結果就不是想要的結果