解析JSON格式資料常見方法

2021-08-10 01:16:08 字數 1771 閱讀 3026

待解析的json格式的檔案如下:[,

] 一、使用jsonobject來解析json資料

官方提供的,所有不需要匯入第三方jar包;直接上**,如下:

1

//方法一:使用jsonobject

2private

void

parsejsonwithjsonobject(string jsondata) 14}

15catch

(exception e)

1619 }

步驟解讀:

定義乙個json陣列,用於將伺服器返回的資料傳入到乙個jsonarray物件中; 然後迴圈遍歷這個jsonarray,

從中取出每乙個元素

(jsonobject物件

),接下來只需呼叫getstring()方法即可將資料取出。

二、使用gson

需要匯入的jar包如圖:

下面是核心**:

//

方法二:使用gson

private

void

parsejsonwithgson(string jsondata)

}

步驟解讀:

public

class

private

string id;

private

string name;

private

string version;

public

string getid()

public

void

setid(string id)

//......

}

如只有一組資料,則可以直接呼叫如下**     

gson gson = new

gson();

如果有多組資料,則需要借助typetoken將期望解析成的資料型別傳入fromjson()方法中:

補充:typetoken是什麼呢?

typetoken的使用非常簡單,如上面的**,只要將需要獲取型別的泛型類作為typetoken的泛型引數構造乙個匿名的子類,就可以通過gettype()方法獲取到我們使用的泛型類的泛型引數型別。

三、使用jackson

其中需要使用到:

jackson-databind.jar核心包(必須),提供基於「流模式」解析的api【jsonpaser(json流讀取),jsongenerator(json流輸出)】

jackson-annotations.

jackson-core.jar

註解包(可選),提供註解功能。

核心方法:

public

static

void

parsejsonwithjackson(string jsondata)

catch

(jsonparseexception e)

catch

catch

(ioexception e)

}

四、使用fastjson

核心**:

jsonarray

jarr = jsonarray.parsearray

(jsondata); //

json.parsearray(jsonstr);

for (iterator iterator =jarr.iterator

(); iterator.hasnext(); )

解析 JSON 格式資料

比起 xml,json的主要優勢在於它的體積更小,在網路上傳輸的時候可以更省流量。但缺點在於,它的語義性較差,看起來不如xml 直觀。我們還需要在c apache apache2 htdocs目錄中新建乙個 get data.json 的 檔案,然後編輯這個檔案,並加入如下 json 格式的內容 修...

JSON資料解析(各種格式)

一 解析物件 1.不帶物件名 格式 解析方法 jsonobject json new jsonobject jsostring person.setid json.getint id person.setname json.getstring name person.setaddress json....

解析json格式的資料

一 本程式是從客戶端傳送請求到伺服器,伺服器返回josn格式的資料,客戶端進行解析並展示。二 public class mainactivity extends activity private final static string path protected static final int ...