不詳細介紹JSON是什麼東東啦,反正就是一種資料交換或是傳遞的格式,還挺方便使用的唷。
範例大概狀況是這樣,我有兩個Table是一對多的狀況,就是一個訂單底下有很多Item項目,
主要任務就想把這兩個Table的資料產生成JSON的格式。
前置作業
Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq
這兩個要用的先Imports進來。
- 先去 http://json.codeplex.com/ 下載DLL回來參考
- 先建立Data Object
01 | Public Class JsonDO |
02 | |
03 | Private A As Integer = 0 |
04 | Private B As String = "" |
05 | Private C As Integer = 0 |
06 | |
07 | Private item As Object |
08 | |
09 | |
10 | Public Property pA() As Integer |
11 | Get |
12 | Return A |
13 | End Get |
14 | Set ( ByVal value As Integer ) |
15 | A= value |
16 | End Set |
17 | End Property |
18 | |
19 | Public Property pB() As String |
20 | Get |
21 | Return B |
22 | End Get |
23 | Set ( ByVal value As String ) |
24 | B= value |
25 | End Set |
26 | End Property |
27 | |
28 | Public Property pC() As Integer |
29 | Get |
30 | Return C |
31 | End Get |
32 | Set ( ByVal value As Integer ) |
33 | C= value |
34 | End Set |
35 | End Property |
36 | |
37 | Public Property pItem() As Object |
38 | Get |
39 | Return item |
40 | End Get |
41 | Set ( ByVal value As Object ) |
42 | item = value |
43 | End Set |
44 | End Property |
45 | |
46 | |
47 | End Class |
2.把資料撈出來後塞進JsonDO,然後就可以產生JSON囉
1 | Dim Jstring As String |
2 | Dim Jrecord As New JsonDO |
3 | |
4 | '省略把資料塞進DO的Code唷~ |
5 | |
6 | '這段就是產生JSON的 |
7 | Jstring = JsonConvert.SerializeObject(Jrecord) |
3.抓取JSON中的值匯入
01 | '因為是範例所以還是先產生JSON字串,等等才可以讀取。 |
02 | Dim ImportJson As JObject |
03 | ImportJson = JsonConvert.DeserializeObject(Of JObject)(Jstring) |
04 | |
05 | '這段意思就是我要讀取主檔資料表中Item欄位資料 |
06 | Dim JsonOB As Object |
07 | JsonOB = ImportJson .Item( "pItem" ) |
08 | |
09 | '如果要讀取第二層Item欄位中的細項可以這樣寫,那個 i 要給迴圈用的。 |
10 | JsonOB = ImportJson .Item( "pItem" ).ElementAt(i).Item( "pautoid" ) |
11 | |
12 | '大致寫法就是這樣,有些Code有省略,請見諒^^。 |
產生出來的JSON可以到這裡去看唷 http://jsonviewer.stack.hu/
依我這個Demo的範例產生出來就是這樣。
因為要跟對方交換資料,所以就試了一下,對方給我的資料只要是照著我的DO那樣去產生的話,
這樣我就可以直接塞進去資料庫了^^,有不完善的地方還請大家多多指教。