生成json文件和解析json文件

在开发中很多时候会遇到json文件的解析和把数据库中的数据写成json文件的形式存储起来。

代码如下:

//把数据库中的数据写成json格式的文件存储到SD卡中
public static void backupsNote(SQLiteDatabase db) {
		JSONObject allData = new JSONObject(); // 建立最外面的JSONObject
		JSONArray array = new JSONArray(); // 定义新的JSONArray对象
		Cursor cursor = db.rawQuery("select * from note ", null);
		while (cursor.moveToNext()) {
			if (cursor.getInt(0) > 0) {
				JSONObject temp = new JSONObject(); // 创建一个新的JSONObject对象
				try {
					temp.put(NoteColumns.ID, cursor.getInt(0));
					temp.put(NoteColumns.PARENT_ID, cursor.getInt(1));
					temp.put(NoteColumns.ALERTED_DATE, cursor.getLong(2));
					temp.put(NoteColumns.BG_COLOR_ID, cursor.getInt(3));
					temp.put(NoteColumns.CREATED_DATE, cursor.getLong(4));
					temp.put(NoteColumns.HAS_ATTACHMENT, cursor.getInt(5));
					temp.put(NoteColumns.MODIFIED_DATE, cursor.getLong(6));
					temp.put(NoteColumns.NOTES_COUNT, cursor.getInt(7));
					temp.put(NoteColumns.SNIPPET, cursor.getString(8));
					temp.put(NoteColumns.CONTENT, cursor.getString(9));
					temp.put(NoteColumns.IMAGE, cursor.getString(10));
					temp.put(NoteColumns.RECORD, cursor.getString(11));
					temp.put(NoteColumns.TYPE, cursor.getInt(12));
					temp.put(NoteColumns.WIDGET_ID, cursor.getInt(13));
					temp.put(NoteColumns.WIDGET_TYPE, cursor.getInt(14));
					temp.put(NoteColumns.SYNC_ID, cursor.getInt(15));
					temp.put(NoteColumns.LOCAL_MODIFIED, cursor.getInt(16));
					temp.put(NoteColumns.ORIGIN_PARENT_ID, cursor.getInt(17));
					temp.put(NoteColumns.GTASK_ID, cursor.getString(18));
					temp.put(NoteColumns.VERSION, cursor.getInt(19));
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				array.put(temp);
			}
		}
		try {
			allData.put("persondata", array);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (!Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {// 判断是否存在SD卡
			return;
		}
		File file = new File(Path() + "/" + "note.txt");
		PrintStream out = null; // 打印流
		try {
			out = new PrintStream(new FileOutputStream(file)); // 实例化打印流对象
			out.print(allData.toString()); // 输出数据
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (out != null) { // 如果打印流不为空,则关闭打印流
				out.close();
			}
		}
	}
//把sd卡中的json文件解析存储到数据库中
public static void NoteJson(String str, SQLiteDatabase db) throws Exception {
		ContentValues mNoteValues = new ContentValues();
		JSONObject note = new JSONObject(str);
		JSONArray persondata = note.getJSONArray("persondata");

		for (int i = 0; i < persondata.length(); i++) {
			JSONObject object = persondata.getJSONObject(i);
			if (Integer.parseInt(object.getString("type")) == 0) {
				mNoteValues.put(NoteColumns.ALERTED_DATE, 0);
				mNoteValues.put(NoteColumns.BG_COLOR_ID,
						Integer.parseInt(object.getString("bg_color_id")));
				mNoteValues.put(NoteColumns.CREATED_DATE,
						Long.parseLong(object.getString("created_date")));
				mNoteValues.put(NoteColumns.HAS_ATTACHMENT,
						Integer.parseInt(object.getString("has_attachment")));
				mNoteValues.put(NoteColumns.MODIFIED_DATE,
						Long.parseLong(object.getString("modified_date")));
				mNoteValues.put(NoteColumns.NOTES_COUNT, 0);
				mNoteValues.put(NoteColumns.SNIPPET,
						object.getString("snippet"));
				mNoteValues.put(NoteColumns.CONTENT,
						object.getString("content"));
				mNoteValues.put(NoteColumns.IMAGE, object.getString("image"));
				mNoteValues.put(NoteColumns.RECORD, object.getString("record"));
				mNoteValues.put(NoteColumns.TYPE,
						Integer.parseInt(object.getString("type")));
				mNoteValues.put(NoteColumns.WIDGET_ID,
						Integer.parseInt(object.getString("widget_id")));
				mNoteValues.put(NoteColumns.WIDGET_TYPE,
						Integer.parseInt(object.getString("widget_type")));
				mNoteValues.put(NoteColumns.SYNC_ID,
						Integer.parseInt(object.getString("sync_id")));
				mNoteValues.put(NoteColumns.LOCAL_MODIFIED,
						Integer.parseInt(object.getString("local_modified")));
				mNoteValues.put(NoteColumns.ORIGIN_PARENT_ID,
						Integer.parseInt(object.getString("origin_parent_id")));
				mNoteValues.put(NoteColumns.GTASK_ID,
						object.getString("gtask_id"));
				mNoteValues.put(NoteColumns.VERSION,
						Integer.parseInt(object.getString("version")));
				mNoteValues.put(NoteColumns.PARENT_ID,
						Integer.parseInt(object.getString("parent_id")));
				db.insert(TABLE.NOTE, null, mNoteValues);
				}
			}
		}
	}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间的数据传输。在解析JSON文件时,可以使用不同的编程语言和库。 以下是一些常见的JSON解析方法: 1. Java中使用GSON库 GSON是Google提供的Java库,可以将JSON数据转换为Java对象,也可以将Java对象转换为JSON数据。 ```java // 将JSON字符串转换为Java对象 Gson gson = new Gson(); MyObject myObject = gson.fromJson(jsonString, MyObject.class); // 将Java对象转换为JSON字符串 String jsonString = gson.toJson(myObject); ``` 2. Python中使用json模块 Python标准库中的json模块提供了解析生成JSON数据的方法。 ```python import json # 将JSON字符串转换为Python对象 pythonObject = json.loads(jsonString) # 将Python对象转换为JSON字符串 jsonString = json.dumps(pythonObject) ``` 3. JavaScript中使用JSON对象 JavaScript中的JSON对象提供了解析生成JSON数据的方法。 ```javascript // 将JSON字符串转换为JavaScript对象 var jsonObject = JSON.parse(jsonString); // 将JavaScript对象转换为JSON字符串 var jsonString = JSON.stringify(jsonObject); ``` 4. PHP中使用json_decode和json_encode函数 PHP中的json_decode函数可以将JSON数据转换为PHP对象或数组,json_encode函数可以将PHP对象或数组转换为JSON数据。 ```php // 将JSON字符串转换为PHP对象 $phpObject = json_decode($jsonString); // 将PHP对象转换为JSON字符串 $jsonString = json_encode($phpObject); ``` 以上是一些常见的JSON解析方法,不同的编程语言和库可能有一些差异,但大体上都是类似的。在实际应用中,可以根据具体需求选择适合自己的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值