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 ...
随机推荐
- Hbase 0.95.2介绍及下载地址
HBase是一个分布式的.面向列的开源数据库,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System) ...
- Win10环境下的Scrapy结合Tor进行匿名爬取
本文内容来源:http://blog.privatenode.in/torifying-scrapy-project-on-ubuntu/ 在使用Scrapy的时候,一旦进行高频率的爬取就容易被封IP ...
- openerp学习笔记 错误、警告、提示、确认信息显示
1.检查业务逻辑中的错误,终止代码执行,显示错误或警告信息: raise osv.except_osv(_('Error!'), _('Error Message.')) 示例代码: #删除当前销售单 ...
- 【转】你需要知道的Python用法
在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性.一些可以说是非常有用,但却没有充分利用.考虑到这一点,我编辑了一些的你应该了解的Pyghon功能特色. 带任意数量参数的函数 你 ...
- R语言基础(二) 可视化基础
> which.max(apply(x[c("x1","x2","x3")], 1, sum))49 > x$num[which ...
- .NET特性-Attribute
两篇文章有助于学习Attribute特性的概念. http://blog.csdn.net/byondocean/article/details/6802111 http://www.cnblogs. ...
- Nginx模块开发-理解HTTP配置
理解HTTP配置 相关数据结构 先明白Nginx下述数据结构,再理解 HTTP配置的解析与合并过程 ngx_module_t 官方API typedef struct{ NGX_MODULE_V1; ...
- windows2003通过iis配置ftp服务器
以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...
- Linq小技巧
遍历集合ForEach: listAll.Items.Clear(); List<Users> list = DP.UsersDAO.GetInfoList(); list.ForEach ...
- Java线程通信——wait() 和 notify()
Object类中有关线程通信的方法有两个notify方法和三个wait方法,官方解释: void notify() Wakes up a single thread that is waiting o ...