.NET

JavaとC#でJSONを使う

Java と C# でソケット通信をするのは簡単ですが、クライアントとサーバ間で、どのような形式でデータを渡すかのプロトコルが重要になってきます。

そこで、今回は JSON(JavaScript Object Notation)の形式でデータの受け渡しをやってみたいと思います。

JSON

JSON は、JavaScript におけるオブジェクトの表記法をベースとしたデータ記述言語ですが、他の言語でも比較的扱いやすく、ライブラリもいくつか用意されています。

Java では Json-lib、.NET では Json.NET があります。

実際に、Java をクライアント、C# をサーバとして JSON のフォーマットを使ってソケット通信をしてみます。

BeanからJSONにデータバインディング

早速、Java の Json-lib を使ってみたいと思います。

2007 年 11 月現在の JDK1.5 用の最新版は Json-lib2.1 です。
(json-lib-2.1-jdk15.jar)

Json-lib が内部的に下記のライブラリもを使っているので、今回は、それぞれ最新をダウンロードしてきました。

まずは簡単なサンプルとして、Integer と String の値をセットして、JSON 形式の文字列を表示してみます。

JSON 形式の文字列から Bean などに取り込んでみたいと思います。

JSONからBeanにデータバインディング

JSON 文字列を Bean でデータバインディングしてみたいと思います。

まずは、数値型と文字列型の 2 つの要素を持った Bean と、JSON 文字列から Bean を生成するプログラム、Bean から JSON 文字列を生成するプログラムを作成してみます。

[Bean]
JsonSampleBean.java

[Javaプログラム]
JsonToBean.java
BeanToJson.java

Bean クラスっぽい名前になっちゃいましたが気にしないで下さい。

まずは、JSON 文字列から Bean を生成するパターンです。

[結果]
{“word”:”abcde”,”number”:55}
Number : 55
Word : abcde

次に、Bean オブジェクトから JSON 文字列を生成するパターンです。

[結果]
{“word”:”abcde”,”number”:55}

最後に、使用した Bean です。