android 对象到json json到对象

接口类

package com.test.json;import org.json.JSONException;import org.json.JSONObject;public interface JsonSerializable {abstract void deCode(JSONObject object) throws JSONException;abstract void enCode(JSONObject object) throws JSONException;}

实体类

package com.test.json;import java.io.Serializable;import org.json.JSONException;import org.json.JSONObject;public class ItemInfo implements Serializable , JsonSerializable{/** *  */private static final long serialVersionUID = 1L;public int screen;public int cellX;public int cellY;public int mWidth;public int mHeight;public Object ObjectTag;public ItemInfo(){}public ItemInfo(int screen,int cellX, int cellY) {super();this.screen = screen;this.cellX = cellX;this.cellY = cellY;}public ItemInfo(int screen,int cellX, int cellY, int mWidth, int mHeight,Object objectTag) {super();this.screen = screen;this.cellX = cellX;this.cellY = cellY;this.mWidth = mWidth;this.mHeight = mHeight;ObjectTag = objectTag;}@Overridepublic  void enCode(JSONObject object) throws JSONException {object.put("screen", screen);object.put("cellX", cellX);object.put("cellY", cellY);}@Overridepublic void deCode(JSONObject object) throws JSONException {screen = object.getInt("screen");cellX = object.getInt("cellX");cellY = object.getInt("cellY");}}

package com.test.json;import org.json.JSONException;import org.json.JSONObject;import android.graphics.Bitmap;public class AppInfo extends ItemInfo {/** *  */private static final long serialVersionUID = 1L;public Bitmap iconBitmap;public String title;public boolean isInstall = false;public boolean isUpdate = false;public AppInfo(){super();}public AppInfo(Bitmap iconBitmap, String title) {super();this.iconBitmap = iconBitmap;this.title = title;}public AppInfo(int screen, int cellX, int cellY, Bitmap iconBitmap,String title) {super(screen, cellX, cellY);this.iconBitmap = iconBitmap;this.title = title;}public boolean eqXY(AppInfo appInfo) {if (this.cellX == appInfo.cellX && this.cellY == appInfo.cellY)return true;return false;}@Overridepublic void enCode(JSONObject object) throws JSONException {super.enCode(object);object.put("title", title);object.put("isInstall", isInstall);object.put("isUpdate", isUpdate);}@Overridepublic void deCode(JSONObject object) throws JSONException {super.deCode(object);title = object.getString("title");isInstall = object.getBoolean("isInstall");isUpdate = object.getBoolean("isUpdate");}}

activity

package com.test.json;import org.json.JSONException;import org.json.JSONObject;import org.json.JSONTokener;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class JsonTestActivity extends Activity implements OnClickListener {   private Button button;private AppInfo appInfo;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        button = (Button) findViewById(R.id.button1);        button.setOnClickListener(this);        findViewById(R.id.button2).setOnClickListener(this);        appInfo = new AppInfo(1, 1, 1, null, "1234");    }@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button1:objToJson();break;case R.id.button2:jsonToObj();break;default:break;}}private void objToJson(){JSONObject jsonObject = new JSONObject();try {appInfo.enCode(jsonObject);String data =  jsonObject.toString();getDataContainer().edit().putString("Appinfo",data).commit();} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void jsonToObj(){String jsonStr = getDataContainer().getString("Appinfo",null);if(null == jsonStr) return ;try {JSONObject object = (JSONObject) new JSONTokener(jsonStr).nextValue();appInfo = new AppInfo();appInfo.deCode(object);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private SharedPreferences getDataContainer(){return getSharedPreferences("JsonTestActivity", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);}}

更多相关文章

  1. Android消息处理机制2——Message
  2. Android序列化Parcelable
  3. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
  4. Android的Message机制(简单小结)
  5. Android的线程使用来更新UI----Thread、Handler、Looper、TimerT
  6. Activity对象的onCreate方法真是Android程序的入口吗?
  7. [Unity3D]Android实现手机震动功能
  8. [置顶] Android高质量博客分类汇总及接口API
  9. Android(安卓)Studio 导入 GreenDao

随机推荐

  1. Android开发 APP进程启动原理
  2. dex分包
  3. android的edittext默认不获得焦点
  4. Could not find method runProguard() fo
  5. android中基本的加密方法
  6. Android稳定性问题分析时获取手机状态的A
  7. android 实现圆形imageView,Circle image
  8. Android(安卓)P 各种ANR的时间
  9. 解决vlc-android播放http视频退出问题
  10. Android之判断是否安装某个应用