VB.NET Json.NETを試す
ぱふぉちゅー担当としては、既存処理の分析と回帰テスト(振る舞いが変わってないこと=IOが変わってないこと)が必要
でも、たとえば、ある関数のIOをすばやく確認したいんだけど、デバッグの「ローカル ウィンドウ」とかじゃ手間がかかり過ぎる
# VB.NETのビルトインDTO的なヤツってもっすごいfat
# DataTableとかね
LL系だとオブジェクトのTextDumperとか標準であったりするのに...
JavaでもBeanのSerializerとか使ってdumper(Object o)とか作ったりするのよね
んで、今回もDumper(o As Object)でもこさえようかとwww
JavaだとJUnitのInputにまわせたりするのでXMLでdumpしたりするんだけど、より可読性の高いJSONでやってみた
コード(純粋なDTOとDataTable)
Imports System.IO Imports System.Text Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Public Class Person Public name As String Private _birthday As String Public Property Birthday() As String Get Return _birthday End Get Set(value As String) _birthday = value End Set End Property End Class Public Class JsonTest Public Shared Sub Main() test1() test2() End Sub Private Shared Sub test1() Dim p As New Person p.name = "あいう" p.Birthday = "2011/01/02" Dim jsonString As String = JsonConvert.SerializeObject(p) Debug.Print("■" & jsonString) End Sub Private Shared Sub test2() 'Dim s As String = "Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;User ID=sa;Password=sapassword;database=db1;" Dim s As String = "Provider=SQLOLEDB;Data Source=127.0.0.1,1433;User ID=sa;Password=sapassword;database=db1;" Dim Cn As New OleDb.OleDbConnection(s) Dim SQLCm As OleDb.OleDbCommand = Cn.CreateCommand Dim Adapter As New OleDb.OleDbDataAdapter(SQLCm) Dim table As New DataTable SQLCm.CommandText = "select * from dbo.item" Adapter.Fill(table) Dim jsonString As String = JsonConvert.SerializeObject(table, Formatting.Indented) Debug.Print("■" & jsonString) End Sub End Class
結果
■{"name":"あいう","Birthday":"2011/01/02"} ■[ { "item_id": 1, "item_name": "製品A", "price": 10000 }, { "item_id": 2, "item_name": "製品B", "price": 20000 }, { "item_id": 3, "item_name": "製品B", "price": 20000 } ]
フィールドにもプロパティにも対応していて、DataTableもキレイ♪
http://www.carlprothman.net/Default.aspx?tabid=86
http://james.newtonking.com/projects/json/help/
http://logicalerror.seesaa.net/article/154654720.html
http://james.newtonking.com/projects/json/help/SerializingJSON.html
ちなみに、Chromeのアドインで*.jsonはXMLみたいに見ることができます♪♪
https://chrome.google.com/extensions/detail/chklaanhfefbnpoihckbnefhakgolnmc
Json.NETよくできてます
dllの参照を追加するだけだしね(詳細はまた)
Work! Enjoy it!