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. 计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]

    题目链接:https://nanti.jisuanke.com/t/30999 样例输入258 样例输出814 题意: squarefree数是指不含有完全平方数( 1 除外)因子的数, 现在一个数字 ...

  2. Oracle管理监控之Oracle用户权限

    数据字典 1.动态数据字典是以v$xxx开始的数据字典,在数据库中约有150个左右,这些数据字典反映数据库动态运行状况,在不同时间查询会得到不同的结果. 2.DBA数据字典是以DBA_xxx表示,该数 ...

  3. thread safe

    computer science J. Glenn Brookshear with contributions from David T. SmithIndiana University of Pen ...

  4. MTU-TCP/IP协议栈-linux kernel-TCP丢包重传-UDP高性能-AI- ip数据报 tcp数据报

    1.IP协议首部 TCP报文段的首部  UDP分组结构   ip数据报 tcp数据报 UDP校验 w 报文长度该字段指定UDP报头和数据总共占用的长度.可能的最小长度是8字节,因为UDP报头已经占用了 ...

  5. Spring中,使用Java配置的方式进行依赖注入

    之前用spring的时候,只知道使用xml的方式,和使用注解的方式,却一直不知道在spring中,还可以使用Java类的方式进行配置.使用Java类的方式,就可以取代xml和注解.使用Java配置是S ...

  6. SQL Server学习路径(文章目录)

    SQL Server文章目录 SQL Server文章目录(学习路径)  转自:http://www.cnblogs.com/CareySon/archive/2012/05/08/2489748.h ...

  7. centos7最小安装初始化脚本

    #!/bin/bash #zhangsen #lovexlzs@qq.com if [[ "$(whoami)" != "root" ]]; then exit ...

  8. [LeetCode] 877. Stone Game == [LintCode] 396. Coins in a Line 3_hard tag: 区间Dynamic Programming, 博弈

    Alex and Lee play a game with piles of stones.  There are an even number of piles arranged in a row, ...

  9. 转载一篇debug文章

    http://versprite.com/og/ios-reverse-engineering-part-two-debugging-and-tracing-with-lldb/ iOS Revers ...

  10. SpringMyBatisDay01

    1.Spring简介 Spring是一个开源轻量级应用开发框架,其目的是用于简化企业级应用程序的开发,降低侵入性Spring提供IOC和AOP功能,可以将组件(就是类)之间的耦合度降至最低,解耦,便于 ...