teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/01/31 02:30

投稿

YAmaGNZ
YAmaGNZ

スコア10679

answer CHANGED
@@ -31,4 +31,54 @@
31
31
 
32
32
  ```
33
33
  でコンバートできます。
34
- このようにコンバート後、UTF-8へのエンコードを行って送信すればいいのではないでしょうか
34
+ このようにコンバート後、UTF-8へのエンコードを行って送信すればいいのではないでしょうか
35
+
36
+ ### さらに追記
37
+ 参照設定にて`System.Runtime.Serialization`を追加し
38
+ ```VB.NET
39
+ '--------------------------------------------------------------------
40
+ ' リクエスト・メインクラス(JSON List)
41
+ '--------------------------------------------------------------------
42
+ <DataContract>
43
+ Public Class RequestJson3
44
+ <DataMember>
45
+ Property headerlist3 As New List(Of HeaderList3) '--- 配列データ 
46
+ <DataMember>
47
+ Property reqdat3 As New List(Of DataList3) '--- 配列データ 
48
+ End Class
49
+
50
+ '--------------------------------------------------------------------
51
+ ' リクエスト・ヘッダークラス(List)
52
+ '--------------------------------------------------------------------
53
+ <DataContract>
54
+ Public Class HeaderList3
55
+ <DataMember>
56
+ Property recordNo As String = "" '--- レコード番号
57
+ <DataMember>
58
+ Property appVer As String = "" '--- 識別情報
59
+ <DataMember>
60
+ Property houkokuTime As String = "" '--- データ作成日時
61
+ End Class
62
+
63
+ '--------------------------------------------------------------------
64
+ ' リクエスト・データクラス(List)
65
+ '--------------------------------------------------------------------
66
+ <DataContract>
67
+ Public Class DataList3
68
+ <DataMember>
69
+ Property recordNo As String = "" '--- レコード番号
70
+ <DataMember>
71
+ Property okozukai As String = "" '--- お小遣い
72
+ <DataMember>
73
+ Property actiondate As String = "" '--- 使った日
74
+ End Class
75
+
76
+
77
+ ' JSONへシリアライズ
78
+ Using stream As New MemoryStream
79
+ Dim serializer = New DataContractJsonSerializer(json.GetType)
80
+ serializer.WriteObject(stream, json)
81
+ Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray()))
82
+ End Using
83
+
84
+ ```

1

追記

2019/01/31 02:30

投稿

YAmaGNZ
YAmaGNZ

スコア10679

answer CHANGED
@@ -2,4 +2,33 @@
2
2
  `ToArray`が使えるのだとすれば、`DataListの配列`なのではないでしょうか?
3
3
  また、json.reqdat.ToArray.ToStringとしたところでJSONデータにはならないのではないですか?
4
4
 
5
- また、UTF-8ではなくSHIFT-JISでエンコードしてバイト配列化しようとしていますが、UTF-8でエンコードしなくてはいけないのではないですか?
5
+ また、UTF-8ではなくSHIFT-JISでエンコードしてバイト配列化しようとしていますが、UTF-8でエンコードしなくてはいけないのではないですか?
6
+
7
+
8
+ ### 追記
9
+ JSONへのコンバートですが、NuGetでNewtonsoft.Jsonをインストールし
10
+ ```VB.NET
11
+ Dim senddata As New RequestJson3
12
+
13
+ Dim header As New HeaderList3
14
+ header.recordNo = "1"
15
+ header.appVer = "1.0.0"
16
+ header.houkokuTime = "12:00:00"
17
+
18
+ senddata.headerlist3.Add(header)
19
+
20
+ Dim data As DataList3
21
+ data = New DataList3
22
+ data.recordNo = "11"
23
+ data.okozukai = "1000"
24
+ data.actiondate = "2019/01/01"
25
+
26
+ senddata.reqdat3.Add(data)
27
+
28
+
29
+ Dim jsondata As String = Newtonsoft.Json.JsonConvert.SerializeObject(senddata)
30
+ Console.WriteLine(jsondata)
31
+
32
+ ```
33
+ でコンバートできます。
34
+ このようにコンバート後、UTF-8へのエンコードを行って送信すればいいのではないでしょうか