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 ...
随机推荐
- win8.1环境下硬盘安装centos6.5双系统
作为一名软件工程师或是相关行业的从业人员,经常会用到linux系统,这里为大家介绍的安装linux的方案是在原有win环境下安装linux双系统,两个系统选择分别为win8.1 和centos6.5. ...
- C语言带参数的main()函数
示例代码: #include<stdio.h> int main(int argc, char *argv[]) { int i; printf("Total %d argume ...
- CentOS 6.4 升级 Mysq5.5l方法 和 用户远程登录数据库
一:.在这里我们都知道 系统的yum源Mysql版本一般都是5.1 5.2的比较多 但是有些程序 必须要5.5以上的版本才能支持 这时候我们应该怎么办呢 编译安装也太慢 太费时间 那么我们就必要要 ...
- SQL server数据库内置账户SA登录设置
SQL server数据库内置账户SA登录不了 设置SQL Server数据库给sa设置密码的时候 提示18456 解决步骤: 第二步:右击sa,选择属性: 第三步:点击状态选项卡:勾选授予 ...
- 自定义视图(继承View)
前言 Android提供了丰富的控件,但是有时候还是不能满足自己的需求,这时候就需要自定义视图了,自定义视图分为几种,一种为继承为View的,一种为继承于ViewGroup的.继承于View的需要我们 ...
- 查看linux系统版本命令
一.查看内核版本命令: 1) [root@SOR_SYS ~]# cat /proc/version Linux version 2.6.18-238.el5 (mockbuild@x86-012.b ...
- php header函数实例代码
一个完美的演示PHP header()函数用法的完整代码. 其中介绍的refresh方法,比<META ……用起来更得心应手,应该是段不错的代码. <?php /*** Function ...
- 启动另外一个activity,并返回结果
欢迎大家光临我的小店:http://clkk.taobao.com 大致步骤: 1.启动另外一个Activity,这里称子Activity: 2.子Activity通过setResult方法设置返回结 ...
- [C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)
在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测 ...
- nginx服务器绑定域名和设置根目录
首先进入nginx安装目录的配置目录conf,然后执行 vi conf/nginx.conf 打开nginx的配置文件,找到并修改红字部分 server { listen default_server ...