SQLの窓

2013年09月07日


google-gson(Java) を使って、JSON を 定義済みクラスのオブジェクトに一括変換する

JSON_ENTRY 内を JSON の内容に合わせて作成しておくだけで、一行の処理で全てセットしてくれます。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import com.google.gson.Gson;

public class HttpAndGet {

	public static void main(String[] args) {

		String http_string = HttpGet();
		System.out.println(http_string);
		
		// Gson を作成
		Gson gson = new Gson();
		
		// 全体の文字列を JSON_ENTRY クラスに投入
		// ( 未定義のものは無視されます )
		JSON_ENTRY je = gson.fromJson(http_string,JSON_ENTRY.class);

		// 一覧表示
		for( int i = 0; i < je.winofsql.length; i++ ) {
			System.out.println(je.winofsql[i]);
		}
	}

	// ******************************************************************
	// JSON を インターネットから取得する
	// ******************************************************************
	public static String HttpGet() {
		String json_string = "";
		
		try {
			// JSON の URL
			URL url = new URL("http://toolbox.winofsql.jp/json/sample2.json");
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection)url.openConnection();
			http.setRequestMethod("GET");
			// 接続 
			http.connect();
			
			// UTF-8 でリーダーを作成
			InputStreamReader isr = new InputStreamReader(http.getInputStream(), "UTF-8");
			
			json_string = new TextReader().getText(new BufferedReader(isr)); 
			
			isr.close();
			http.disconnect();
			
		}
		catch( Exception e ) {
			e.printStackTrace();
			json_string = "{ \"winofsql\" : [\"error\"] }";
		}
		
		return json_string;
		
	}

	// ******************************************************************
	// BufferedReader から テキストを取得
	// ******************************************************************
	static class TextReader {
		public String getText(BufferedReader br) throws IOException {

			String result_string = "";
			String line_buffer = null;   
			// BufferedReader は、readLine が null を返すと読み込み終了   
			while ( null != (line_buffer = br.readLine() ) ) {   
				// コマンドプロンプトに表示   
				result_string += line_buffer;
			}
 
			// 閉じる   
			br.close();
			
			return result_string;
		
		}
	}
	
	static class JSON_ENTRY {
		String[] winofsql;
	}

}

関連する記事

VS(C#) : Json.NET を使用して文字列形式の JSON をプログラムで参照する具代的な方法



posted by lightbox at 2013-09-07 16:46 | java : 通信関連 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり