Android之Json的学习
json数据包含json对象,json数组,对象是{ },数组是[ ], 数组里面还可以包含json对象,json对象之间是用逗号(,)隔开
形式如下:
{
"languages":[
{"id":,"ide":"VS","name":"C#"},
{"id":,"ide":"eclipse","name":"java"},
{"id":,"ide":"XCode","name":"Swift"}
],
"category":"it"
}
android studio下面新建assets(资产)文件夹,是放在main下面,和java,res同一目录下
在assets下新建test.json文件,把上面json数据放里面
下面是读取json文件输出到控制台显示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); findViewById(R.id.bt_showJson).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bt_showJson:
ReadJson();
break;
}
} private void ReadJson() {
try {
InputStreamReader isr = new InputStreamReader(getAssets().open("test.json"), "utf-8");
BufferedReader br = new BufferedReader(isr);
String line = "";
StringBuilder builder = new StringBuilder();
while ((line = br.readLine()) != null) {
builder.append(line);
}
//json根对象
JSONObject root = new JSONObject(builder.toString());
System.out.println("category:" + root.getString("category")); //得到json数组
JSONArray array = root.getJSONArray("languages");
for (int i = ; i < array.length(); i++) {
//得到每一行的json对象
JSONObject lan = array.getJSONObject(i);
System.out.println("----------------");
System.out.println("id:" + lan.getInt("id"));
System.out.println("name:" + lan.getString("name"));
System.out.println("ide:" + lan.getString("ide"));
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
二:写入json数据,输出到控制台,新建一个WirteJson方法,然后点击按钮直接调用WirteJson函数
private void WirteJson() {
try {
//新建一个json根对象
JSONObject root = new JSONObject();
root.put("category", "it");
/* {"id":1,"ide":"VS","name":"C#"},
{"id":2,"ide":"eclipse","name":"java"},
{"id":3,"ide":"XCode","name":"Swift"}*/
//新建数组里面的json对象,新建3个对象,每个对象放入键值对
JSONObject lan1 = new JSONObject();
lan1.put("id", );
lan1.put("ide", "vs");
lan1.put("name", "C#"); JSONObject lan2 = new JSONObject();
lan2.put("id", );
lan2.put("ide", "eclipse");
lan2.put("name", "C#"); JSONObject lan3 = new JSONObject();
lan3.put("id", );
lan3.put("ide", "Xcode");
lan3.put("name", "Swift"); //新建一个json数组
JSONArray array = new JSONArray();
array.put(lan1);
array.put(lan2);
array.put(lan3); //json数组放入json的root根对象里面
root.put("languages", array);
System.out.println("------------下面是写入的json数据");
System.out.println(root.toString());
System.out.println("------------得到json数组对象");
System.out.println(root.getJSONArray("languages"));
} catch (JSONException e) {
e.printStackTrace();
}
}
控制台的显示的数据是:
Android之Json的学习的更多相关文章
- Android读取JSON格式数据
Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- android解析json
android2.3提供的json解析类 android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象 JSONStringer:js ...
- Android自动化测试之Monkeyrunner学习笔记(一)
Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- JSON 教程学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...
- Json.Net学习笔记
http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...
- Android(java)学习笔记267:Android线程池形态
1. 线程池简介 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...
- Android(java)学习笔记207:开源项目使用之gif view
1. 由于android没有自带的gif动画,我在Android(java)学习笔记198:Android下的帧动画(Drawable Animation) 播客中提到可以使用AnimationVie ...
随机推荐
- 最终版的Web(Python实现)
天啦,要考试了,要期末考试了,今天把最终版的Python搭建Web代码先写这里记下了.详细的过程先不写了. 这次是在前面的基础上重写 HTTPServer 与 BaseHTTPRequestHandl ...
- oracleDBA-D2
1.超级管理员sys和system的区别: sys权限比system大,system无法查看到当前数据库是否运行在归档模式下,无法关闭数据库.sys是老大,system是老二. 2.OEM-oracl ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- Mac eclipse配置Python环境
1.给Eclipse安装PyDev插件 第一次启动会让选择一个工作空间,按缺省设置,勾选一下不再提醒,就可以了.在Help菜单中,选择Install New Software···, 选择Add按钮, ...
- hdu 1241 Oil Deposits
#include<cstdio> #include<iostream> #include<algorithm> #include<math.h> #in ...
- 【Java EE 学习 80 上】【WebService】
一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...
- UnrealScript语言基础
总体特征 (1)大小写不敏感.关键字.宏.变量名.函数名以及类名不区分大小写:变量名可以与关键字同名 (2)局部变量.成员变量未初始化时,会被编译器初始化 (3)没有全局变量.全局函数,所有东西必须写 ...
- 公众号第三方平台开发 获取 component_verify_ticket 2015-07-05 10:16 59人阅读 评论(0) 收藏
8.推送component_verify_ticket协议 在公众号第三方平台创建审核通过后,微信服务器会向其"授权事件接收URL"每隔10分钟定时推送component_veri ...
- 基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- resin实现域名访问
1.修改resin.properties 2.修改hosts文件 3.添加一行记录 配置完后就可以通过test.com访问项目了.