兩種方式解析json C WinForm

2021-09-24 14:10:54 字數 2119 閱讀 2651

最近專案中涉及到解析json,他可以用兩種方式實現,自帶的和第三方的,感興趣的都了解一下吧。

c#自帶的方式操作json是以序列化和反序列的方式。

這種方式解析json比較麻煩,自己要寫乙個數字協議datacontract,進行序列化處理。注意json裡的key值 要和定義的數字協議(datacontract)的數字成員(datamember)的名稱相對應,因為他是根據名稱對應的,不然解析到的資料是null。

首先我們要引用system.runtime.serialization,這個可以在【引用管理器】的【程式集】裡面找到。

所在的命名空間為:

using system.runtime.serialization;

using system.runtime.serialization.json;

我的要解析的資料為:

]

}

我自己寫的數字協議:

[datacontract]

class terminalinfo

[datamember(order = 1)]

public string terminal_cmdport

[datamember(order = 2)]

public string terminal_dataport

[datamember(order = 3)]

public string terminal_connect_state

[datamember(order = 4)]

public string terminal_id

[datamember(order = 5)]

public string terminal_usb_sum

[datamember(order = 6)]

public string terminal_soft_version

[datamember(order = 7)]

public string terminal_model

[datamember(order = 8)]

public string terminal_all_usbports_state

}[datacontract]

class usbshare

}

解析獲取資料的方法(如下),updateinfo就是獲取到的資料(下圖所示)。

newtonsoft.json是開源的c#處理json的第三方庫,在github(可以找到原始碼和你所需要的動態庫。

有兩種方式引用它的動態庫,第一種就是根據你的框架選擇合適的動態庫(我的是json120r2版本,有如下這麼多個可用的框架),將對應的動態庫放到你專案下,進行引用。

第二種,就是 選中當前專案右鍵 選中【管理nuget程式包】,如下,然後過濾搜尋【newtonsoft.json】,然後將其【安裝】。

安裝結束後,我們可以看到【引用】裡面已經有它了,然後就可直接使用其命名空間,編譯後,就可以在生成資料夾裡面看到newtonsoft.json.dll了,這種方式是自動根據框架選擇對應的動態庫,很方便。

**如下(我只解析了我需要的部分),

public void parsejsonofterminal(string jsontext)

}

記得寫命名空間

using newtonsoft.json.linq;
這就是c#解析json的兩種方式,自帶的那種寫法我第一遇到(我之前是寫qt c++的,比較孤陋寡聞),比較有意思,雖然比較麻煩。

JSON的兩種解析方式

一.將需要轉換的物件轉換成json物件 1.首先建立json物件 gson gson new gson 2.建立物件 以book類為例 book b new book 3.轉換 string s g.tojson b 此時得到的s即是json的字串 二.將json物件轉換成需要的物件 1.首先建立j...

XML解析的兩種方式區別

xml解析的兩種方式區別 1.dom解析 需要xml完全載入進記憶體才可以操作 可以方便進行增刪改查操作,耗費記憶體 2.sax解析 逐漸掃瞄xml檔案,當遇到標籤時觸發解析處理器,不需要載入進記憶體 只能讀取,無法進行增刪改查 dom解析 具體解析步驟如下 documentbuilde ctory...

兩種過載方式

過載的方式 用某次作業題中的實現complex類做例子 1 實現加法 1 complex complex operator const complex c 2 友元函式 complex operator const complex l,const complex r 2 實現 1 complex c...