JavaScriptSerializer
2019/06/21
JavaScriptSerializerを使ってjson文字列を作ってみます。
◆環境
OS |
Windows 7 Professional Service Pack 1 64bit |
C# |
01018-587-4054026-70893 |
以下の手順を行います。
- [ファイル]-[新規作成]-[プロジェクト]を選択します。
- [Visual C#]を選択し、[Windows コンソール アプリケーション]を選択します。
「プロジェクト名」は「JavaScriptSerializerTest」にします。
プロジェクトを右クリックし[プロパティ]を選択します。
「.NET Framework 4.0」を選択します。
「OK」ボタンを押します。
プロジェクトを右クリックし[参照の追加]を選択します。
「.NET」タブを選択し「System.Web.Extensions」を選択し「OK」ボタンを押します。
json文字列の作成と読み込みをするようにしてみます。
Program.cs
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
namespace JavaScriptSerializerTest
{
public class Trn
{
public decimal trn_nmbr;
public string item_code;
public decimal amount;
public void dump()
{
Console.WriteLine("trn_nmbr={0}", trn_nmbr);
Console.WriteLine("item_code={0}", item_code);
Console.WriteLine("amount={0}", amount);
}
}
class Program
{
static void Main(string[] args)
{
var data = new Trn();
data.trn_nmbr = 1m;
data.item_code = "001";
data.amount = 120m;
// Trn class -> json string
var json
= new JavaScriptSerializer()
.Serialize(data);
Console.WriteLine(json.ToString());
// json string -> Trn class
var trn
= new JavaScriptSerializer()
.Deserialize<Trn>(json);
trn.dump();
// 固定文字列を読み込ませる
string s
= "{\"trn_nmbr\":2"
+ ",\"item_code\":\"001\""
+ ",\"amount\":150}"
;
trn = new JavaScriptSerializer()
.Deserialize<Trn>(s);
trn.dump();
// Trnクラスにない項目を指定してみる
s = "{\"trn_nmbr\":2"
+ ",\"amount\":150"
+ ",\"tax\":15}"
;
trn = new JavaScriptSerializer()
.Deserialize<Trn>(s);
trn.dump();
Console.ReadLine();
}
}
}
|
|
実行してみます。
{"trn_nmbr":1,"item_code":"001","amount":120}
trn_nmbr=1
item_code=001
amount=120
trn_nmbr=2
item_code=001
amount=150
trn_nmbr=2
item_code=
amount=150
期待通りに動作しました。
json文字列を、固定文字列で定義して読み込ませても正常に解釈できました。
対象クラスにない項目を指定しても無視されるだけのようです。
▲ PageTop ■ Home
Copyright (C) 2019 ymlib.com