博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android读写JSON格式的数据之JsonWriter和JsonReader
阅读量:6793 次
发布时间:2019-06-26

本文共 2689 字,大约阅读时间需要 8 分钟。

近期的好几个月都没有搞Android编程了,逐渐的都忘却了一些东西。近期打算找一份Android的工作,要继续拾起曾经的东西。公司月初搬家之后就一直没有网络,直到今日公司才有网络接入,各部门才開始办公。不说这些了,以下開始今天的正文。

JSON格式的数据通经常使用于网络传输。尤其是在移动设备上与服务端进行数据交互。

JSONXML比較有明显的优势。XML格式的数据非常臃肿,传递少量的数据就要附带非常多额外的格式数据。而JSON除了少量的符号外。所有是真正的数据。所以有越来越多的程序用JSON来代替XMLJSON格式的数据不仅被广泛应用于网络传输,也经经常使用于本地存储。

JSON格式的数据能够存储数组和对象。数组用一对中括号([……])表示。对象用一对大括号({……})表示。数组和对象能够嵌套。比如,以下是一个用JSON表示的对象数组:

[{id:1,name:”Android将军”},{id:2,name:”Android将军”}]

Android SDK用于读写JSON格式数据的类是JsonReaderJsonWriter。这两个类能够处理数组和对象,处理数组的代码必须放在beginArrayendArray方法之间,处理对象的代码必须放在beginObjectendObject之间。

这里给出一个读写JSON文件案例,主Activity代码例如以下:

package com.gc.androidjsonpractice;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import android.os.Bundle;import android.os.Environment;import android.annotation.SuppressLint;import android.app.Activity;import android.graphics.Paint.Join;import android.util.JsonReader;import android.util.JsonWriter;import android.widget.Toast;/** * 功能:复习与练习Json的使用一 *  * @author Android将军 *  */@SuppressLint("NewApi")public class MainActivity extends Activity {	private String filePath;	private FileOutputStream fileOutputStream;	private FileInputStream fileInputStream;	@SuppressLint({ "NewApi", "SdCardPath" })	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		//json文件存放路径		filePath = Environment.getExternalStorageDirectory().toString()				+ "/test.json";		System.out.println("filePath:" + filePath);//查看实际路径		try {			fileOutputStream = new FileOutputStream(filePath);			@SuppressWarnings("resource")			//開始写JSON数据			JsonWriter jsonWriter = new JsonWriter(new OutputStreamWriter(					fileOutputStream, "UTF-8"));			jsonWriter.beginObject();			jsonWriter.name("id").value("1");			jsonWriter.name("name").value("Android将军");			jsonWriter.endObject();			System.out.println("JSON数据写入完成!");			jsonWriter.close();			// 開始读JSON数据			System.out.println("開始读取JSON数据");			fileInputStream = new FileInputStream(filePath);			@SuppressWarnings("resource")			JsonReader jsonReader = new JsonReader(new InputStreamReader(					fileInputStream, "UTF-8"));			jsonReader.beginObject();			System.out.println("哈哈:"+jsonReader.toString());			while (jsonReader.hasNext()) {				if (jsonReader.nextName().equals("id")) {					System.out.println("id:" + jsonReader.nextString());				}				if (jsonReader.nextName().equals("name")) {					System.out.println("name:" + jsonReader.nextString());				}			}			jsonReader.endObject();			jsonReader.close();		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}

 

程序执行结果例如以下:

转载请注明出处:

你可能感兴趣的文章
服务器时间同步
查看>>
php常用函数总结
查看>>
我的友情链接
查看>>
从码云上clone项目到本地不能纳入管理问题
查看>>
Linux 目录结构详解
查看>>
大家都用得起的液冷服务器
查看>>
linux下物理内存和虚拟内存交换机制
查看>>
经典Oracle教程
查看>>
转(一万小时定律的文章): const 与 readonly区别...
查看>>
10种JavaScript特效实例让你的网站更吸引人
查看>>
LOGO有哪几种常规设计思路?
查看>>
unity3D知识点
查看>>
在服务器上运行Jar包
查看>>
C#遍历对象属性
查看>>
设置float之后vertical-align失效
查看>>
ABP官方文档翻译 2.3 缓存
查看>>
主动调用其他类的成员, 特殊成员
查看>>
JAVA数据结构-----栈
查看>>
【Boost】timer、progress_timer和progress_display
查看>>
ParentalControl-SteadyState
查看>>