源码:

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数据格式的简单使用的更多相关文章

  1. android中Json的一些应用

    JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...

  2. Android中Json数据读取与创建

    一:  Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...

  3. json数据格式的简单案例

    json数据是一种文本字符串,它是javascript的原生数据格式,在数据需要多次重复使用时,json数据是ajax请求的首先.(注:ajax返回的数据格式支持三种分别为:文本格式,json.和xm ...

  4. Android中GPS定位的简单应用

    在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void ...

  5. android 解析json数据格式(转)

    json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...

  6. android 解析json数据格式

    json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...

  7. <转>android 解析json数据格式

    json数据格式解析我自己分为两种:一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下:{"userbean":{"Uid": ...

  8. Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比

    介绍 移动互联网产品与服务器端通信的数据格式,如果没有特殊的需求的话,一般选择使用JSON格式,Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高 ...

  9. 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html 有Android开发经验的朋友对Shar ...

随机推荐

  1. Ubuntu14.04 开启MySQL的remote access

    一旦开启MySQL的remote access, 即可实现在windows系统下连接ubuntu下的mysql 步骤如下: sudo vim /etc/mysql/my.cnf bind-addres ...

  2. 在 linux x86-64 模式下分析内存映射流程

    前言 在上一篇中我们分析了 linux 在 x86-32 模式下的虚拟内存映射流程,本章主要继续分析 linux 在 x86-64 模式下的虚拟内存映射流程. 讨论的平台是 x86-64, 也可以称为 ...

  3. C# winform 中 TabControl 动态显示 TabPage

    在winform应用中,tabcontrol是一个很好的控件,可以根据需求提供多个选项卡(TabPages),但是有一个问题是当某个项目需要多个选项卡,但是不同的功能要求显示不同的选项卡,其他的非该功 ...

  4. 【Qt】Qt之重启应用程序【转】

    简介 今天分享的内容有些意思-如何重启一个应用程序.其实,有时候这是一个很重要的功能点,而且很人性化.易用性很好. 例如:切换用户.当某个用户登录成功之后,需要切换到其它账号,那么这时,你就知道它的重 ...

  5. 通信录分组并且分组标签悬停划入划出(包含错误信息及修改)--第三方开源--PinnedSectionListView

    PinnedSectionListView在github上的链接地址是:https://github.com/beworker/pinned-section-listview . 下载下来后直接将Pi ...

  6. 植物大战僵尸中文第二版和年度版 游戏分析及delphi源码

    00413184 |. E8 77E30100   |CALL PlantsVs.00431500                  ; 地上的物品00413189 |. 8D7424 10     ...

  7. Jquery 在动态元素上绑定事件

    弄了很久却没有弄出来,感觉没有错,但是动态元素上的事件根本就不响应,代码如下: <input type="button" id="btnyes" valu ...

  8. C string 函数大全

    PS:本文包含了大部分strings函数的说明,并附带举例说明.本来想自己整理一下的,发现已经有前辈整理过了,就转了过来.修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时 ...

  9. Zend-MVC intro

    Zend-MVC intro Zend MVC层建立在servicemanager.eventmanager.http.stdlib.几个组件之上.相关组件介绍会在其他文章中详细说明. 除了以上4大组 ...

  10. session 测试用例详解

    http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无状态,指的是不会维护http请求数据,http请求是独立的,非持久的.而越来越复杂的WEB应用,需要保存一些用户状 ...