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 ...
随机推荐
- Linux C 程序 Linux网络编程(21)
Linux网络编程网络编程必备的理论基础网络模型,地址,端口,TCP/IP协议 TCP/IP协议是目前世界上使用最广泛的网络通信协议日常中的大部分应用使用该系列协议(浏览网页,收发电子邮件,QQ聊天等 ...
- js设计模式(4)---组合模式
0.前言 今天是建党节,新疆那边又开始了闹腾.作为立志成为码农的我,现在已经从一个大愤青淡化为一个小愤青,对这些国家民生大事不在血气喷发,转而把经历发泄在技术问题上面,因而在扯一篇随笔吧,把无处发泄的 ...
- [大牛翻译系列]Hadoop(22)附录D.2 复制连接框架
附录D.2 复制连接框架 复制连接是map端连接,得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接的实现非常直接明了.更具体的内容可以参考Chunk Lam的<H ...
- linux服务器修改ssh默认22端口方法
1.登录服务器,打开sshd_config文件 # vim /etc/ssh/sshd_config 2.找到#Port 22,默认是注释掉的,先把前面的#号去掉,再插入一行设置成你想要的端口号,注意 ...
- 关于华为C8812救砖教程
问题:华为C8812刷机后,开机显示:---------------------------------------------------------------- Image signature ...
- java之其它命令
java编译命令 javac: javac -d <目录> 源文件.java 指定存放生成的class文件的路径命令行下编译带包名的java源文件: javac -d . XX.java ...
- js IDE WebStorm 注册码
webStorm : UserName:William ===== LICENSE BEGIN ===== 45550-12042010 00001SzFN0n1bPII7FnAxnt0DDOPJA ...
- 【BZOJ 2132】 圈地计划
Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区 ...
- beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读
了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego. ...
- bnuoj 25659 A Famous City (单调栈)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=25659 #include <iostream> #include <stdio.h ...