一、创建一个新的项目

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Reload" /> <TextView
android:id="@+id/tvPmData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.40"
android:text="TextView" /> </LinearLayout>

二、MainActivity.java

package com.xuliugen.airpm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView; public class MainActivity extends Activity { private TextView tvPmData; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tvPmData = (TextView) this.findViewById(R.id.tvPmData); findViewById(R.id.reload).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
reloadData();
}
}); } private void reloadData() {
tvPmData.setText("Loading...");
new AsyncTask<Void, Void, String>() { @Override
protected String doInBackground(Void... params) {
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(new URL(
"http://aqicn.org/publishingdata/json")
.openStream(), "utf-8")); String line = null;
StringBuffer contentBuffer = new StringBuffer(); while ((line = reader.readLine()) != null) {
contentBuffer.append(line);
}
reader.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
} @Override
protected void onPostExecute(String result) {
if (result != null) {
try {
JSONArray jsonArray = new JSONArray(result);
JSONObject firstJsonObject = jsonArray.getJSONObject(0); JSONArray pollutantsArray = firstJsonObject.getJSONArray("pollutants");
JSONObject firstpollutants = pollutantsArray.getJSONObject(0); tvPmData.setText(String.format("%s %s:%f",
firstJsonObject.getString("cityName"),
firstJsonObject.getString("localName"),
firstpollutants.getDouble("value")));
} catch (JSONException e) {
e.printStackTrace();
}
}
};
}.execute();
}
}

三、还有一个JSON的案例代码

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); String jsonStr = "{\"name\":\"jikexueyuan\",\"age\":2,\"arr\":{1,2,3,4,5,6,\"jike\"}}"; try {
JSONObject jsonObject = new JSONObject(jsonStr);
String name = jsonObject.getString("name");
System.out.println(name); JSONArray array = jsonObject.getJSONArray("arr");
int firstValue = array.getInt(0);
System.out.println(firstValue); } catch (JSONException e) {
e.printStackTrace();
}
}

网络载入数据和解析JSON格式数据案例之空气质量监測应用的更多相关文章

  1. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  2. 实现android上解析Json格式数据功能

    实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...

  3. 用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  4. $Java-json系列(一):用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  5. ObjectMapper用于将java对象转换为json格式数据以及JSONObject对象解析json格式数据

    ObjectMapper objectMapper = new ObjectMapper(); //反序列化的时候如果多了其他属性,不抛出异常 objectMapper.configure(Deser ...

  6. SpringMVC 实现返回一段数据 & 实现自动发送json格式数据 - AJAX

    实现返回一段数据 - AJAX 当页面通过AJAX来访问Controller时,期望得到的不是一个页面而是一段数据,此时可以使用如下方法,直接向相应中写入数据: /** * 直接向响应中写出数据,通常 ...

  7. C# 解析JSON格式数据

    JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...

  8. Android 解析JSON格式数据

    比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性较差,显示不如XML直观. JSON格式 :  { "name_A" : &qu ...

  9. 【转】C# 解析JSON格式数据

    http://blog.csdn.net/coolszy/article/details/8606803 JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量 ...

随机推荐

  1. hiho 1571 - 贪心好题*

    题目链接 小Hi在帮助钢铁侠开发新的盔甲.这套新盔甲一共包含M种武器插槽,其中第i种插槽有Ci个.每个插槽最多安装一个武器模块. 小Hi一共准备了N个武器模块,编号1~N.每个武器模块都有三个参数Vi ...

  2. vue循环遍历给div添加id

    html部分 <div class="img-preview" v-for="(img,i) of list" :key="img.imageK ...

  3. maven 安装jar包

    1 下载maven: 下载路径: http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-b ...

  4. 原创全新打包工具Parcel零配置VueJS开发脚手架

    parcel-vue 一个基于Parcel打包工具的 VueJS急速开发脚手架解决方案,强烈建议使用node8.0以上 项目地址: https://github.com/w3c-king/p... 初 ...

  5. java 实现顺序结构线性列表

    package com.ncu.list; /** * * 顺序结构线性列表 * * @author liuhao * */ public class SquenceList<T> { p ...

  6. CodeVS 1789 最大获利

    1789 最大获利 2006年NOI全国竞赛  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master       题目描述 Description 新的技术正冲击着 ...

  7. C#串口调试工具 (WPF/MVVM结构完整示例版)

    前文 由于经常用到串口调试, 尽管有现成的软件, 因为前端时间涉及一个二次开发, 就因为一个RtsEnable设置, 折腾半天,  网上各种版本的也很多, 功能扩展的很开也多.所以现在自己做了一个够用 ...

  8. ESRI.ArcGIS.Controls.AxMapControl

    今天在写DLL时发现,直接引用ESRI.ArcGIS.Controls,发现AxMapControl的参数仍然不好用,后来发现,需要引用ESRI.ArcGIS.AxControls这个DLL.而且还需 ...

  9. hadoop-09-安装资源上传

    hadoop-09-安装资源上传 在/software/www/html 下面上传 ambari  HDP  HDP-UTILS-1.1.0.21 文件,之后解压:

  10. hdoj-1212-Big Number【大数取余&amp;简单题】

    Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...