里面多了数组,所以用到了JOSNArray

 package com.xykj.weather;

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class Weather { public static void main(String[] args) {
try {
URL url = new URL(
"http://apicloud.mob.com/v1/weather/query?province=%E6%B9%96%E5%8D%97&key=520520test&city=%E6%B2%85%E9%99%B5");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer sb = new StringBuffer();
String st;
while ((st = br.readLine()) != null) {
sb.append(st);
}
System.out.println(sb.toString());
JSONObject first = JSONObject.fromObject(sb.toString());
System.out.println("============json解析第一层============");
System.out.println("msg:" + first.getString("msg"));
System.out.println("result:" + first.getString("result"));
System.out.println("retCode:" + first.getString("retCode")); // JSONArray解析数组,如果不是数组就直接用JSONObject就可以了
JSONArray result = JSONArray.fromObject(first.getString("result"));
System.out.println("============json解析第二层============");
for (int i = 0; i < result.size(); i++) {
JSONObject second = result.getJSONObject(i);
System.out.println("需要解析的:" + second);
System.out.println("省:\t" + second.get("province"));
System.out.println("市:\t" + second.get("city"));
System.out.println("县:\t" + second.get("distrct"));
System.out.println("日期:\t" + second.get("date"));
System.out.println("空气:\t" + second.get("airCondition"));
System.out.println("湿度:\t" + second.get("humidity"));
System.out.println("污染指数:\t" + second.get("pollutionIndex"));
System.out.println("天气:\t" + second.get("weather"));
System.out.println("风:\t" + second.get("wind")); System.out.println("============json解析第三层===========");
JSONArray future = JSONArray.fromObject(second.get("future"));
for (int j = 0; j < future.size(); j++) {
JSONObject thirdly = future.getJSONObject(j);
System.out.println("===========未来天气============");
System.out.println("日期:" + thirdly.get("date"));
System.out.println("白天:" + thirdly.get("dayTime"));
System.out.println("夜晚:" + thirdly.get("night"));
System.out.println("气温:" + thirdly.get("temperature"));
System.out.println("风:" + thirdly.get("wind"));
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
} }

json三层解析(数组解析)的更多相关文章

  1. C# Newtonsoft.Json解析数组的小例子[转]

    https://blog.csdn.net/Sayesan/article/details/79756738 C# Newtonsoft.Json解析数组的小例子  http://www.cnblog ...

  2. jquery解析php通过ajax传过来的json二维数组对象

    ajax获得php传过来的json二维数组对象,jquery解析 php代码: <?php $news = array( '武汉'=>array(1,2,3), '广州'=>arra ...

  3. web service json 数组解析

     boolean workexpMark = true;     // 美发师工作经历json数组解析     org.json.JSONObject jsonObject = new org.j ...

  4. jmeter解析response里的json对象和数组

    1.解析提取json对象 2.解析提取json数组 注意,标红这里是从0开始计数 提取最后一个数组

  5. ***php解析JSON二维数组字符串(json_decode函数第二个参数True和False的区别)

    客户端的请求体中的数据:[{"msg_id": 1, "msg_status": "HAS_READ" }, { "msg_id& ...

  6. Java中json的构造和解析

    什么是 Json? JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式.  易于人阅读和编写.同时也易于机 ...

  7. 关于json解析中 解析多重json对象

    JSONObject rst = {"AIS-RST":"AIS-00000001","AIS-STATUS":"AIS-0000 ...

  8. iOS-数据持久化基础-JSON与XML数据解析

    解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...

  9. Gson解析数组多类型元素

    本文的出现是为了解决以下需求:使用Gson对json数组进行解析,但是数组里面元素的类型是多种的.数据如下: {"list":[{ "type":0, &quo ...

随机推荐

  1. 10601 - Cubes(Ploya)

    UVA 10601 - Cubes 题目链接 题意:给定正方体12条棱的颜色,要求用这些棱能组成多少不同的正方体 思路:利用ploya定理去求解,分类讨论,正方体一共24种旋转.相应的旋转方式有4种: ...

  2. eclipse中经常使用快捷键

    熟练一些快捷键,会使你的开发更加快捷.高效,值得花些时间学一下! 1. ctrl+shift+r:打开资源 这可能是全部快捷键组合中最省时间的了.这组快捷键能够让你打开你的工作区中不论什么一个文件,而 ...

  3. Bean Query 第一个版本号(1.0.0)已公布

    BeanQuery 是一个把对象转换为Map的Java工具库. 支持选择Bean中的一些属性.对结果进行排序和依照条件查询. 不只能够作用于顶层对象,也能够作用于子对象.很多其它具体的介绍能够看我的博 ...

  4. CodeChef - CHEFPRAD Chef and Pairs 树形DP

     题意 给你一棵由 N 个节点构成的树 T.节点按照 1 到 N 编号,每个节点要么是白色,要么是黑色.有 Q 组询问,每组询问形如 (s, b).你需要检查是否存在一个连通子图,其大小恰好是 s,并 ...

  5. HBase在大搜车金融业务中的应用实践

    摘要: 2017云栖大会HBase专场,大搜车高级数据架构师申玉宝带来HBase在大搜车金融业务中的应用实践.本文主要从数据大屏开始谈起,进而分享了GPS风控实践,包括架构.聚集分析等,最后还分享了流 ...

  6. Infrastructure for container projects.

    Linux Containers https://linuxcontainers.org/

  7. sql 语法树 常量

    SELECT id,'|',url,'|',update_time FROM tab LIMIT 10;SELECT COUNT(1) AS parent,(SELECT COUNT(1) FROM ...

  8. ARM WFI和WFE指令【转】

    本文转载至:http://www.wowotech.net/armv8a_arch/wfe_wfi.html 1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂.最近准备研究 ...

  9. inexact rename detection was skipped due to too many files

    https://stackoverflow.com/a/28064699 error: add_cacheinfo failed to refresh for path 'LISA.Kentico.U ...

  10. Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)——无非是在传统遍历过程中修改叶子结点加入后继结点信息(传统是stack记录),然后再删除恢复

    先看看线索二叉树 n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域.利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索 ...