Java Web应用小案例:查询天气信息11.4

一:以查询天气为例,
1、获取城市代码
http://toy1.weather.com.cn/search?cityname=泸州

Java Web应用小案例:查询天气信息11.4_第1张图片
利用国家气象局提供的接口访问泸州的天气信息
http://t.weather.sojson.com/api/weather/city/101271001

二:准备工作,学习如何在Java程序中解析json
1、创建一个项目
2、在项目跟目录上创建Lib包
解析json的jar包链接:https://pan.baidu.com/s/1j4tGxuTYkd3rHhIijkT2Lg 提取码:jjpj
需要手动添加一个json的jar包(也可以直接在网上找)。
Java Web应用小案例:查询天气信息11.4_第2张图片
我的
Java Web应用小案例:查询天气信息11.4_第3张图片
3.在src里创建net.hw.json包,在里面创建ParseJsonString01类

package net.ll.json;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

import java.util.function.Consumer;

public class ParseJsonString {
    public static void main(String[] args){
        String strJson = "{'id':1,'name':'ly','age':20}";
        try {
            //基于Json字符串创建json对象
            JSONObject jsonObject = new JSONObject(strJson);
            //打印输出json对象
            System.out.println(jsonObject);
            //逐个访问json对象及其属性
            System.out.println("id:"+jsonObject.get("id"));
            System.out.println("name:"+jsonObject.get("name"));
            System.out.println("age:"+jsonObject.get("age"));
            //遍历json对象属性
            jsonObject.keys().forEachRemaining(new Consumer() {
                @Override
                public void accept(Object key) {
                    try {
                        System.out.println(key+":"+jsonObject.get(String.valueOf(key)));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

运行结果如下
Java Web应用小案例:查询天气信息11.4_第4张图片

package net.ll.json;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.function.Consumer;

public class ParseJsonString02 {
    public static void main(String[] args){
        String strJson="{'id':1,'name':{'first name':'Smith','last name':'Brian'},'age':20";
        try {
            JSONObject jsonObject=new JSONObject(strJson);
            //打印输出json对象
            System.out.println(jsonObject);
            jsonObject.keys().forEachRemaining(new Consumer() {
                @Override
                public void accept(Object key) {
                    try {
                        System.out.println(key+":"+jsonObject.get(String.valueOf(key)));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });

            JSONObject name=(JSONObject) jsonObject.get("name");

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

Java Web应用小案例:查询天气信息11.4_第5张图片创建3类

package net.ll.json;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.function.Consumer;

/**
 * 功能:将json数组字符串解析为json对象
 * 2019年11月4日11:19:10
 * 作者
 */
public class PraseJsonString03 {
    public static void main(String[] args){
        //定义json数组字符串
        String strJsonArr = "[{'id':1,'name':'ly','age':20},"+
                            "{'id':2,'name':'sjw','age':18},"+
                            "{'id':3,'name':'nbb','age':17}]";


        try {
            //基于json数组字符串创建json数组
            JSONArray jsonArray =new JSONArray(strJsonArr);
            //遍历json数组
            for(int i=0;i

运行结果如下
Java Web应用小案例:查询天气信息11.4_第6张图片

你可能感兴趣的:(Java Web应用小案例:查询天气信息11.4)