Android中JSON数据格式的简单使用
源码:
package com.wangzhu.demo; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import android.content.Context; /**
* JSON:JavaScript对象表示法(JavaScript Object Notation)。 <br/>
* JSON是存储和交换文本信息的语法。<br/>
*
* 特点:<br/>
* JSON是轻量级的文本数据交换格式<br/>
* JSON独立于语言和平台<br/>
* JSON具有自我描述性,更以理解<br/>
*
* 与XML的区别:<br/>
* 类似XML,比XML更小、更快、更易解析<br/>
* 没有结束标签<br/>
* 更短<br/>
* 读写的速度更快<br/>
* 使用数组<br/>
* 不使用保留字<br/>
*
* JSON语法是JavaScript对象表示法语法的子集。<br/>
* 数据在名称/值对中<br/>
* 数据由逗号分隔<br/>
* 花括号保存对象<br/>
* 方括号保存数组<br/>
*
* JSON值可以是:<br/>
* 数字(正数或浮点数)<br/>
* 字符串(在双引号中)<br/>
* 逻辑值(true或false)<br/>
* 数组(在方括号中)<br/>
* 对象(在花括号中)<br/>
* null<br/>
*
* @author wangzhu
* @date 2014年11月15日 下午11:37:38
*/
public class JSONUtils { private Context context; public JSONUtils(Context context) {
this.context = context;
} /**
* 读取Json对象
*/
public void readJsonObject() {
String json = readFile();
try {
JSONObject root = new JSONObject(json);
System.err.println("cat=" + root.getString("cat"));
JSONArray array = root.getJSONArray("language");
for (int i = 0; i < array.length(); i++) {
System.err.println("------------");
JSONObject object = array.getJSONObject(i);
System.err.println("id=" + object.getInt("id"));
System.err.println("ide=" + object.getString("ide"));
System.err.println("name=" + object.getString("name"));
}
} catch (JSONException e) {
e.printStackTrace();
}
} /**
* 读取文件中的内容,文本编码方式为UTF-8
*
* @return
*/
private String readFile() {
StringBuilder accum = new StringBuilder();
InputStreamReader isr = null;
BufferedReader br = null;
try {
isr = new InputStreamReader(context.getAssets().open(
"testJson.json"), "UTF-8");
br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
accum.append(line);
} } catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return accum.toString();
} /**
* 创建Json对象
*/
public void createJsonObject() {
try {
JSONObject root = new JSONObject();
root.put("cat", "it");
JSONArray array = new JSONArray(); JSONObject lan1 = new JSONObject();
lan1.put("id", 1);
lan1.put("ide", "Eclipse");
lan1.put("name", "Java");
array.put(lan1); JSONObject lan2 = new JSONObject();
lan2.put("id", 2);
lan2.put("ide", "Xcode");
lan2.put("name", "Swift");
array.put(lan2); JSONObject lan3 = new JSONObject();
lan3.put("id", 3);
lan3.put("ide", "Visual Studio");
lan3.put("name", "C#");
array.put(lan3);
root.put("language", array); System.err.println("createJsonObject: " + root.toString()); } catch (JSONException e) {
e.printStackTrace();
}
}
}
截图:
Json文件:

执行结果:

2、创建Json对象
/**
* 创建Json对象
*/
private void createJsonObject() {
try {
JSONObject root = new JSONObject();
root.put("cat", "it");
JSONArray array = new JSONArray(); JSONObject lan1 = new JSONObject();
lan1.put("id", 1);
lan1.put("ide", "Eclipse");
lan1.put("name", "Java");
array.put(lan1); JSONObject lan2 = new JSONObject();
lan2.put("id", 2);
lan2.put("ide", "Xcode");
lan2.put("name", "Swift");
array.put(lan2); JSONObject lan3 = new JSONObject();
lan3.put("id", 3);
lan3.put("ide", "Visual Studio");
lan3.put("name", "C#");
array.put(lan3);
root.put("language", array); System.err.println("createJsonObject: " + root.toString()); } catch (JSONException e) {
e.printStackTrace();
}
}
执行结果:

Android中JSON数据格式的简单使用的更多相关文章
- android中Json的一些应用
JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...
- Android中Json数据读取与创建
一: Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...
- json数据格式的简单案例
json数据是一种文本字符串,它是javascript的原生数据格式,在数据需要多次重复使用时,json数据是ajax请求的首先.(注:ajax返回的数据格式支持三种分别为:文本格式,json.和xm ...
- Android中GPS定位的简单应用
在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void ...
- android 解析json数据格式(转)
json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...
- android 解析json数据格式
json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...
- <转>android 解析json数据格式
json数据格式解析我自己分为两种:一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下:{"userbean":{"Uid": ...
- Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
介绍 移动互联网产品与服务器端通信的数据格式,如果没有特殊的需求的话,一般选择使用JSON格式,Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高 ...
- 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html 有Android开发经验的朋友对Shar ...
随机推荐
- 安装apk文件报waiting for device 时解决办法
C:\Users\root>adb install d:\rry_0514.apkerror: more than one device and emulator- waiting for de ...
- C# winform 中 TabControl 动态显示 TabPage
在winform应用中,tabcontrol是一个很好的控件,可以根据需求提供多个选项卡(TabPages),但是有一个问题是当某个项目需要多个选项卡,但是不同的功能要求显示不同的选项卡,其他的非该功 ...
- jQuery实现用户注册的表单验证
用户注册的表单往往是需要进行验证的,否则会有一些不否合规则的数据入库,后果会不堪设想,本文通过jquery来实现. <html> <head> <meta chars ...
- win7 64位下jboss配置
1.下载Jboss7 下载地址:http://www.jboss.org/jbossas/downloads/ 2.解压到一个目录,如D:\Working,最终路径是D:\Working\jboss- ...
- @RenderSection与@RenderBody
_LayoutMain: <html> <head> @RenderSection("head") </head> <body> @ ...
- oracle 11g 通过透明网关链接mysql
之前转载过一篇在Windows上安装的,自己实际在centos上安装了一下.以下为安装记录: 一.操作系统环境 二.数据库环境(用oracle用户登录) 三.DG4ODBC 在Oracle DB 11 ...
- WPF学习笔记 控件篇 属性整理【1】FrameworkElement
最近在做WPF方面的内容,由于好多属性不太了解,经常想当然的设置,经常出现自己未意料的问题,所以感觉得梳理下. ps:先补下常用控件的类结构,免得乱了 .NET Framework 4.5 Using ...
- 2016 Multi-University Training Contest 1 Chess 组合游戏+状压(预处理)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5724 题意:一个n*20的棋盘,n <= 1000;棋盘上有一些棋子,每颗棋子只能移动到右边的第一个 ...
- 菜鸟学习Struts——配置Struts环境
刚开始学习Struts,它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品. 要用到Struts就要学会配 ...
- Java从入门到精通——数据库篇之OJDBC版本区别
classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle ...