Android下Json數據解析
如從網絡獲取JSON 則需要創建一個工具類,該類返回一個字符串為JSON文本
package com.example.jsonapp;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class UrlHtmlUtil {
public static String getHtmlJsonByUrl(String urlTemp){
URL url = null;
InputStreamReader input = null;
HttpURLConnection conn;
// JSONObject jsonObj = null;
String a = null;
try {
url = new URL(urlTemp);
conn = (HttpURLConnection) url.openConnection();
input = new InputStreamReader(conn.getInputStream(),"utf-8");
Scanner inputStream = new Scanner(input);
StringBuffer sb = new StringBuffer();
while (inputStream.hasNext()) {
sb.append(inputStream.nextLine());
}
a=sb.toString();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return a;
}
}然后將文本轉為JSONArray,用JSONArray.optJSONObject()來獲取JSONObject 對象,接下來便可解析
JSONArray array=new JSONArray(json);
Log.i("轉換數組成功","");
for(int i=0;i<array.length();i++)
{
JSONObject jo = array.optJSONObject(i);
if(jo.getString("area").equals(cityName))
{
tv.setText("AQI指數:"+jo.getString("aqi")+"\n地區:"+jo.getString("area")
+"\n空氣質量:"+jo.getString("quality"));
break;}
if(i==array.length()-1){
tv.setText("抱歉,也并沒有找到該城市");
}
}public void enJson(String json){
try {
JSONTokener jsonParser=new JSONTokener(json);
JSONObject aqi=(JSONObject)jsonParser.nextValue();
String aqistr,areastr,quastr,lvstr,timestr;
aqistr=aqi.getString("aqi");
areastr=aqi.getString("area");
quastr=aqi.getString("quality");
lvstr=levelToLevel(aqi.getString("level"));
timestr=timeToTime(aqi.getString("time"));
tv.setText("地區:"+areastr+"\nAQI:"+aqistr+"\n空氣質量:"+quastr+"\n小貼士:"+lvstr+"\n更新時間:"+timestr+"\n點我刷新數據");
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!