Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成为了主流,那 json 解析就显得尤为重要。

json的形式在我看来就是键值对集合,所以关键就是 json字符串转换为 json对象,和 json对象转换为 json字符串。

网站提供给Android的API接口返回的都是json格式字符串,所以说呢,安卓调用API(例如天气的API接口)接口开发的必经之路就是将网站返回的json格式字符串转化为json对象,我们在用的时候就可以.属性(点 属性)的方式把需要的值给找出来。

期初我想要的是没有 [ ] 括起来的json字符串,还没有实验成功,但是找到了有括号括起来的json字符串,没问题了!

Json 解析(最外层有 【 】包成列表的形式 ):

[{"id":"","version":"5.5","name":"愤怒的小鸟"},
{"id":"","version":"7.0","name":"神庙逃亡"},
{"id":"","version":"3.5","name":"保卫萝卜"}]

将上面 json 格式字符串转化为 json 对象:

  private void parseJSONWithJSONObject(String jsonData) {
try { JSONArray jsonArray = new JSONArray(jsonData);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i); String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
String version = jsonObject.getString("version");
Log.d("woider", "id is " + id);
Log.d("woider", "name is " + name);
Log.d("woider", "version is " + version);
} } catch (Exception e) {
e.printStackTrace();
}
}

以上就是含有 [ ] 包裹成列表形式的json字符串解析的关键代码。

*********************   手动分割线     ***************************

那么有些时候,例如天气的API接口没有最外层的方括号包裹,单纯的一条json数据怎么办?我也找到案例了,哈哈哈~~

json 字符串:

{
"user":{
"name":"wjw",
"age":"20",
"isMan":true
}
}

Android  Json解析的代码案例:

public class OrgJSONTest {

    public static String json = "{\"user\":{\"name\":\"wjw\",\"age\":\"20\",\"isMan\":true}}";

    public static void main(String[] args){
JSONObject obj = new JSONObject(json);//最外层的JSONObject对象
JSONObject user = obj.getJSONObject("user");//通过user字段获取其所包含的JSONObject对象
String name = user.getString("name");//通过name字段获取其所包含的字符串 System.out.println(name); }
}

OK!那么Android的json解析基础基本上没问题了,至于json字符串转对象还没有这么用到过,用到的时候在做笔记吧!

*******************************  手动分割线   ************************************

另外提供一个 天气 的API接口:

天气API接口  : 这个接口呢,在我发博的时候还是可以用的,做一些基础的练习是没有问题的。

下面其中有一个请求北京天气是返回的数据:

{"date":"20180420","message":"Success !","status":200,"city":"北京","count":485,"data":{"shidu":"58%","pm25":84.0,"pm10":152.0,"quality":"轻度污染","wendu":"19","ganmao":"儿童、老年人及心脏、呼吸系统疾病患者人群应减少长时间或高强度户外锻炼","yesterday":{"date":"19日星期四","sunrise":"05:33","high":"高温 26.0℃","low":"低温 13.0℃","sunset":"18:56","aqi":150.0,"fx":"东南风","fl":"4-5级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},"forecast":[{"date":"20日星期五","sunrise":"05:32","high":"高温 28.0℃","low":"低温 14.0℃","sunset":"18:57","aqi":103.0,"fx":"南风","fl":"4-5级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"21日星期六","sunrise":"05:30","high":"高温 17.0℃","low":"低温 12.0℃","sunset":"18:58","aqi":111.0,"fx":"东北风","fl":"3-4级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"22日星期日","sunrise":"05:29","high":"高温 20.0℃","low":"低温 11.0℃","sunset":"18:59","aqi":36.0,"fx":"北风","fl":"3-4级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"23日星期一","sunrise":"05:28","high":"高温 20.0℃","low":"低温 9.0℃","sunset":"19:00","aqi":29.0,"fx":"东北风","fl":"3-4级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"24日星期二","sunrise":"05:26","high":"高温 24.0℃","low":"低温 10.0℃","sunset":"19:01","aqi":33.0,"fx":"西南风","fl":"3-4级","type":"晴","notice":"愿你拥有比阳光明媚的心情"}]}}

Android JSON 解析关键代码的更多相关文章

  1. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  2. android json 解析简单实例

    Android JSON解析跟JAVA 的JSON解析原理是一样的. Android自带的JSON方式跟方便,不需要导包啥的.不深究原理了,直接上代码: public class JsonActivi ...

  3. android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】

    android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...

  4. Android Json解析与总结

    一.JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  5. android Json解析详解(详细代码)

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  6. android json解析及简单例子

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  7. Android JSON 解析库的使用 - Gson 和 fast-json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  8. android Json解析详解

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语 言的支持),从而可以在不同平台间进行数 ...

  9. android json 解析 简单示例

    1 下面是一个简单的json 解析的demo,废话不多说,直接上代码 package com.sky.gallery; import java.io.ByteArrayOutputStream; im ...

随机推荐

  1. 【技术开放日】msup携手HPE揭秘全球测试中心背后的12条技术实践

    保证软件产品质量是软件测试永恒的目标. 以控制为出发点的传统IT时代正在快速的向以激活生产力为目的的移动互联时代转变.这不仅是技术的升级,更是思想意识的巨大变革,也对软件技术的发展带来的更高的要求和更 ...

  2. Pycharm中如何使用科学计算库

    1.简便起见 比起麻烦的安装各种库,我们选择最方便的Anaconda的conda或pip(兼容支持)安装相关库. Pycharm本身缺少numpy和matplotlib这些库,而另一个Python的开 ...

  3. .Net微服务架构之运行日志分析系统

    一.引言 .Net技术栈目前还没有像spring cloud相对完整一整微服务架构栈,随着业务发展系统架构演进,自行构建.Net技术体系的微服务架构,配套相关核心组件.因平台基于微服务架构方式研发,每 ...

  4. 洛谷P1903 数颜色 [国家集训队] 莫队

    正解:带修莫队 解题报告: 可以理解为引入时间参数,然后就是有了仨参数,关于这个修改同样的是,如果时间是相同的,不用搞,如果时间不相同做一下时光倒流/时光推移就成嘛 但是肯定既然这样的话,按照原来的s ...

  5. 打造自己的 JavaScript 武器库

    原文 https://segmentfault.com/a/1190000011966867 github:https://github.com/proYang/outils 前言 作为战斗在业务一线 ...

  6. PHP主动断开与浏览器的连接

    以前整理过一篇<关于PHP连接处理中set_time_limit().connection_status()和ignore_user_abort()深入解析>,是解说浏览器client断开 ...

  7. vue:Group XSwitch Actionsheet,Toast控件使用

    <template> <div> <div class="vux-demo"> <img class="logo" s ...

  8. 开源的挖矿软件,sha256

    http://cryptomining-blog.com/tag/sha-256d-miner/ https://github.com/cbuchner1/CudaMiner/blob/master/ ...

  9. POJ2488:A Knight's Journey(dfs)

    http://poj.org/problem?id=2488 Description Background The knight is getting bored of seeing the same ...

  10. PAT 1003 Emergency[图论]

    1003 Emergency (25)(25 分) As an emergency rescue team leader of a city, you are given a special map ...