`
yunlonglove
  • 浏览: 242734 次
社区版块
存档分类
最新评论

JSON亲测解析 实现北京的天气预报信息

 
阅读更多

经过俩天的学习与实践 本次通过一个天气预报小小数据虽说仅仅只接了一组数据但大体还是了解JSON的解析的基本过程。下面就是先关解析的过程:先把解析封装成一个类:

package com.zzy.test;

import java.io.BufferedReader;

import java.io.ByteArrayOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.http.HttpConnection;

import org.apache.http.util.ByteArrayBuffer;

import org.json.JSONArray;

import org.json.JSONObject;

import android.R.integer;

import android.app.Activity;

import android.util.Log;

public class JSON extends Activity

{

public static List<Map<String, String>> getJsonpath(String path) throws Exception

{

List<Map<String,String>> list =new ArrayList<Map<String,String>>();

String json=null;

Map<String, String> map;

URL url=new URL(path);

/// 利用HttpURLConnection对象,我们可以从网络中获取网页数据.

HttpURLConnection cn=(HttpURLConnection) url.openConnection();

//设置网络连接超时

cn.setConnectTimeout(5*1000);

//设置请求方式一般简单用getpost这里用get方法

cn.setRequestMethod("GET");

//得到读取的内容

InputStreamReader in=new InputStreamReader(cn.getInputStream());

//流的应用与读取

BufferedReader bu=new BufferedReader(in);

String line=bu.readLine().toString();

bu.close();

in.close();

//把字符数组转换成字符串

json=new String(line);

//这里是以对象的形式

JSONObject item1=new JSONObject(json);

//得到对象中的对象

JSONObject item=item1.getJSONObject("weatherinfo");

// System.out.println(path);

//获取对象中的每一个数值

System.out.println(json);

String name=item.getString("city");

String id=item.getString("cityid");

String temp=item.getString("temp");

String fengxiang=item.getString("WD");

String daxiao=item.getString("WS");

String wet=item.getString("SD");

String time=item.getString("time");

String isreader=item.getString("isRadar");

String Radar=item.getString("Radar");

//添加到MAP

map=new HashMap<String, String>();

map.put("name", name);

map.put("id", id);

map.put("temp", temp);

map.put("fengxiang", fengxiang);

map.put("daxiao", daxiao);

map.put("wet", wet);

map.put("time", time);

map.put("isReader", isreader);

map.put("Rader", Radar);

list.add(map);

//测试数据

for(Map<String, String> list1:list)

{

System.out.println(list1.get("name"));

System.out.println(list1.get("id"));

System.out.println(list1.get("temp"));

System.out.println(list1.get("fengxiang"));

System.out.println(list1.get("daxiao"));

}

return list;

}

}

上面是一个仅仅解析一个北京市的天气预报,其他城市的类似。尤其注意的是解析需要注册上网许可应在Androidmainfest注册:

Activity中的代码是:

package com.zzy.test;

import java.net.URL;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import javax.security.auth.PrivateCredentialPermission;

import android.R.string;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class DoActivity extends Activity {

private TextView textView1=null;

private TextView textView2=null;

private TextView textView3=null;

private TextView textView4=null;

private List<Map<String, String>> list =new ArrayList<Map<String,String>>();

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

this.textView1=(TextView)findViewById(R.id.do1);

this.textView2=(TextView)findViewById(R.id.do2);

this.textView3=(TextView)findViewById(R.id.do3);

this.textView4=(TextView)findViewById(R.id.do4);

try

{

String path="http://www.weather.com.cn/data/sk/101010100.html";

//传递路径

list=JSON.getJsonpath(path);

for(Map<String,String> list1:list)

{

System.out.println(list1.get("name"));

System.out.println(list1.get("id"));

System.out.println(list1.get("temp"));

System.out.println(list1.get("fengxiang"));

System.out.println(list1.get("daxiao"));

textView1.setText("城市 :"+list1.get("name"));

textView2.setText("风向 :" +list1.get("fengxiang"));

textView3.setText(list1.get("temp"));

System.out.println(list1.get("fengxiang"));

textView4.setText(list1.get("daxiao"));

}

} catch (Exception e)

{

// TODO: handle exception

}

}

}

显示效果:

整体的效果就是这样 通过一个简单的解析让我们简单的对JSON的使用有一个清晰的认识!

分享到:
评论

相关推荐

    利用Json 实现的天气预报

    在本项目“AndroidWeatherReportDemo_JSON”中,我们利用JSON解析天气数据,实现了一个全国天气查询的功能。这个功能对于Android应用开发者来说,是相当实用的,因为它可以让用户实时获取全国各地的天气情况。 首先...

    采用了json解析返回天气信息的天气预报功能

    这个案例中的"采用了json解析返回天气信息的天气预报功能"提供了一个很好的示例,演示了如何使用JSON格式的数据来获取和处理天气预报信息。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    解析中国天气网的Json数据

    通过这样的方式,我们可以从中国天气网的JSON数据中提取所需的信息,用于天气预报应用或数据分析项目。在实际开发中,记得要遵守中国天气网的使用条款和API规定,确保合法、合规地获取和使用数据。同时,也可以根据...

    用superobject读取中国天气网的JSON数据

    SuperObject是一个高效的、轻量级的JSON解析器和生成器,适用于Delphi编程语言,它使得处理JSON格式的数据变得更加简单。 首先,让我们了解什么是JSON(JavaScript Object Notation)。JSON是一种轻量级的数据交换...

    安卓实现天气预报(通过webView直接显示和OKhttp请求数据显示两种方式)

    在安卓应用开发中,获取并显示天气预报是常见的需求。本篇将介绍两种方法来实现这一功能:一种是通过WebView直接显示网页上的天气信息,另一种是利用OkHttp发送网络请求,解析数据并在应用中自定义展示。这两种方法...

    在asp.ne中t使用WebService获取天气预报信息的例子

    - 使用.NET内置的XML或JSON解析库,如`System.Xml.Linq`(用于XML)或`System.Json`(用于JSON),解析接收到的天气信息。 - 将解析后的数据绑定到ASP.NET控件,如GridView或ListView,显示在网页上。 5. **安全...

    js 获取天气预报

    在本文中,我们将深入探讨如何利用JS获取天气预报信息,这通常涉及到API调用和JSON数据解析。 首先,天气预报信息通常是通过与气象服务提供商的API接口进行交互获取的。API(Application Programming Interface)是...

    中国天气网省-市-区/县JSON

    1. **天气预报应用开发**:通过获取这些省市地区的ID编号,可以进一步调用其他API来获取具体的天气预报信息,为用户提供精准的天气服务。 2. **地图应用集成**:在地图应用中集成天气信息,可以为用户提供更加全面的...

    C语言获取中央气象台天气预报

    C语言没有内置的JSON解析库,所以我们需要用到CJSON库。CJSON库提供了简单的API来解析和生成JSON数据。首先,你需要将CJSON库添加到你的项目中。然后,可以按照以下步骤解析JSON数据: 1. 将响应数据转换为CJSON的`...

    smartweather调用天气预报

    标题中的“smartweather调用天气预报”指的是使用特定的API(应用程序接口)或者服务来获取并展示天气预报信息。在本例中,"smartweather"可能是一个开发平台或工具,它提供了与天气预报数据交互的功能。这个过程...

    天气预报例子源码

    在本示例中,我们将深入探讨如何利用Jquery获取并解析公网上的天气预报服务数据,以便在网页或Web应用程序中展示。"天气预报例子源码"是一个实例,它演示了这个过程,对于初学者和有经验的开发者来说,都是一个宝贵...

    Web Service 解读天气预报WSDL获取天气程序

    在这个特定的项目中,我们关注的是如何使用Web Service来获取天气预报信息,特别是通过解析WSDL(Web Services Description Language)文件。WSDL是一种XML格式,用于定义服务的位置、接口以及如何调用这些服务。 ...

    请求网络--天气预报

    本文将深入探讨“请求网络--天气预报”这一主题,讲解如何进行网络请求来获取天气信息,以及如何在实际项目中进行实践。 网络请求通常涉及HTTP(超文本传输协议)或HTTPS(安全的HTTP协议),这些协议允许客户端...

    HTTP得到JSON数据解析在Listview

    在给定的标题"HTTP得到JSON数据解析在Listview"中,我们可以推断开发者正在尝试从"http://m.weather.com.cn/data/101010200.html"这个URL获取天气预报数据。这个URL返回的很可能是JSON格式的天气信息,比如温度、...

    Json解析反序列化Demo

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,...在"GetWeatherDemo"这个例子中,我们看到了如何将JSON响应转换为易于操作的对象,以便在客户端展示天气预报信息。

    vs2008实现接口访问天气预报

    在本文中,我们将深入探讨如何使用Visual Studio 2008(VS2008)和C#语言来实现一个接口,以便访问天气预报服务,从而获取并展示不同地区的天气信息。这一技术对于开发需要实时天气数据的应用程序或网站至关重要。 ...

    C#天气预报小程序

    总的来说,这个C#天气预报小程序的开发涵盖了网络请求、JSON解析、窗体应用设计等多个C#编程的核心概念。通过这个项目,开发者可以提升自己的技能,同时为用户提供一个实用的桌面工具。如果你已经具备了C#基础知识,...

    新浪天气预报服务

    新浪天气预报服务是一款由新浪提供的API接口,允许开发者通过编程方式获取实时及未来几天的天气信息,以便在自己的应用程序或网站上展示。这个服务通常基于HTTP请求,返回JSON格式的数据,包含温度、湿度、风向、...

    Android 基于百度API Store的天气预报

    在Android开发中,实现一个基于百度API Store的天气预报应用是一项常见的任务,它涉及到网络请求、数据解析、UI设计等多个方面。以下是对这个主题的详细解释: 首先,我们需要理解“百度API Store”。百度API Store...

    天气预报调用详细说明配有实例

    本教程将详细讲解如何实现天气预报的调用,并通过实例帮助你理解这一过程。 一、天气预报API概述 天气预报API是互联网上提供的一种服务,允许开发者通过发送请求获取特定地点的气象数据。这些API通常返回包括温度、...

Global site tag (gtag.js) - Google Analytics