AndroidでJsonを使う

Androidでjsonを使用するにはJSONObjectというクラスをつかう。

具体的に使用したクラスを下記に記載する

import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSsendResult {
/**
* 送信フラグ。送信した場合true。エラー、キャンセル等で送信されなかった場合はfalse
*/
protected boolean sendFlag = false;
/**
* 送信した時のファイル名
*/
protected String filename = “”;
/**
* エラーフラグ。エラーが発生した時true
*/
protected boolean error = false;
/**
* エラー時のメッセージ
*/
protected String error_msg = “”;

public JSsendResult( boolean sendFlag, String fileName ){
this.sendFlag = sendFlag;
filename = fileName;
}

public JSsendResult( boolean sendFlag, String fileName, boolean errorFlag, String errMsg ){
this.sendFlag = sendFlag;
filename = fileName;
error = errorFlag;
error_msg = errMsg;
}

/**
* 送信フラグ。送信した場合true。エラー、キャンセル等で送信されなかった場合はfalse
*/
public boolean isSend() { return sendFlag; }
/**
* 送信した時のファイル名
*/
public String getFilename() { return filename;}
/**
* エラーフラグ。エラーが発生した時true
*/
public boolean isError(){ return error;}
/**
* エラー時のメッセージ
*/
public String getErrorMessage(){ return error_msg; }

/**
* JSON文字列から値を取得する
* @param json
* @return
*/
public boolean setJSON( String json ){

JSONObject root = null;

//引数のJSONをパースする
try {
root = new JSONObject(json);
} catch (JSONException e) {
e.printStackTrace();
Log.d(“JSlib”,”jsonパースエラー”);
return false;
}

//値の取得
try {
if( root.has(“sendFlag”) ) sendFlag = root.getBoolean(“sendFlag”);
if( root.has(“filename”) ) filename = root.getString(“filename”);
if( root.has(“error”) ) error = root.getBoolean(“error”);
if( root.has(“error_msg”) ) error_msg = root.getString(“error_msg”);
} catch (JSONException e) {
e.printStackTrace();
Log.d(“JSlib”,”setConfig2JSON:エンコードエラー”);
return false;
}
return true;
}

/**
* クラスの値をJSON文字列にして返す
* @return
*/
public String getJSONString(){
String ret = “”;
JSONObject root = new JSONObject();
try {
root.put(“sendFlag”,sendFlag);
root.put(“filename”, filename);
root.put(“error”,error);
root.put(“error_msg”, error_msg);
ret = root.toString();
} catch (JSONException e) {
e.printStackTrace();
Log.d(“JSlib”,”getJSONString:エンコードエラー”);
return “”;
}

return ret;
}
}

上記のクラスは、通信した結果を保持するためのパラメータクラスだ。
パラメータの内容を画面毎に伝えるためにJSONフォーマットの文字列として受け渡しするためにgetJSONString()やsetJSON()関数を実装している。