網路 解析網路中的資料

2021-10-07 15:33:46 字數 2847 閱讀 3536

在網路上傳輸資料時最常用得方式有兩種:xmljson

解析xml的方式有很多,這裡記錄比較常用的兩種:sax和pull解析的方式

待解析的xml檔案示例

<?xml version="1.0" encoding="utf-8"?>

>

>

sax解析name

>

>

18age

>

person

>

>

xml1name

>

>

43age

>

person

>

persons

>

核心工具類

public

class

saxhelper

extends

defaulthandler

/** * 讀到乙個開始標籤時呼叫,第二個引數為標籤名,最後乙個引數為屬性陣列

*/@override

public

void

startelement

(string uri, string localname, string qname,

attributes attributes)

throws saxexception

this

.tagname = localname;

}/**

* 讀到到內容,第乙個引數為字串內容,後面依次為起始位置與長度

*/@override

public

void

characters

(char

ch,

int start,

int length)

throws saxexception

elseif(

this

.tagname.

equals

("age"))

}}/** * 處理元素結束時觸發,這裡將物件新增到結合中

*/@override

public

void

endelement

(string uri, string localname, string qname)

throws saxexception

this

.tagname = null;

}/**

* 讀取到文件結尾時觸發,

*/@override

public

void

enddocument()

throws saxexception

//獲取persons集合

public arraylist

getpersons()

}

之後在mainactivity中寫乙個這樣的方法,呼叫就可以解析了

private arraylist

readxmlforsax()

throws exception

核心**

public

static arraylist

getpersons

(inputstream xml)

throws exception

elseif(

"name"

.equals

(parser.

getname()

))elseif(

"age"

.equals

(parser.

getname()

))break

;case xmlpullparser.end_tag:if(

"person"

.equals

(parser.

getname()

))break

;}

eventtype = parser.

next()

;}return persons;

}

待解析的資料來源

[,,

]

android給我們提供的解析類

谷歌也提供了一種簡單的解析庫,gson

將解析結果存入物件

public

class

person

public string getid()

public

void

setname

(string name)

public string getname()

public

void

setage

(string age)

public string getage()

@override

public string tostring()

}

解析方法

private

void

parseeasyjson

(string json)

}catch

(exception e)

}

網路程式設計 json資料的解析

張三name 20age 北京city 長安街street adress person public static void main string args 解析string裡的json資料並返回乙個person物件 public static person parsejson string js...

python 解析網路資料報

1 問題描述 網路資料報,我已經使用mitmproxy 抓取了,但是,資料報有些資料是gzip進行編碼的,那麼怎麼還原成原始報文呢?使用的語言是python。2 網上資料 使用的方法,網上有zlib和gzip。使用gzip.decompress這個函式可以直接解密,可惜我的版本不支援。然後網上說的g...

網路資料封裝解析(IP,UDP,TCP)

ip資料報也叫ip報文分組,傳輸在iso網路7層結構中的網路層,它由ip報文頭和ip報文使用者資料組成,ip報文頭的長度一般在20到60個位元組之間,而乙個ip分組的最大長度則不能超過65535個位元組。一 下圖為ip分組的報文頭格式,報文頭的前20個位元組是固定的,後面的可變。版本 佔4位 bit...