Android 新聞app兩三事5. 串接API的方法 org.apache.http
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(solrUrl);
HttpResponse response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) { builder.append(line); }
6. Parse Json Data 方法 Gson
public class News{
private int likes;
private int dislikes;
private int threat_level;
private String category;
private String title;
private String snippet;
}
{ "like": 22, "dislike": 11, "threat_level": 3,
"category": "policity", "title": "拚到底?黃景
泰:對選情仍樂觀", "snippet": "國民黨中央
連日來「勸退」基隆市長參選人黃景泰的聲
浪不斷,台北市長郝龍斌、新北市長朱立倫
輪番表態,要黃退選。"}
Gson gson = new Gson();
News news = gson.fromJson(jsonNews, News.class);
7. Parse Json Array
Gson gson = new Gson();
Type listType = new TypeToken<List<News>>(){}.getType();
ArrayList<News> newsList = gson.fromJson(jsonNews, listType);
[
{ "like": 22, "dislike": 11, "threat_level": 3, "category":
"policity", "title": "拚到底?黃景泰:對選情仍樂觀",
"snippet": "國民黨中央連日來「勸退」基隆市長參選人黃景
泰的聲浪不斷,台北市長郝龍斌、新北市長朱立倫輪番表
態,要黃退選。"}
{ "like": 22, "dislike": 11, "threat_level": 3, "category":
"policity", "title": "拚到底?黃景泰:對選情仍樂觀",
"snippet": "國民黨中央連日來「勸退」基隆市長參選人黃景
泰的聲浪不斷,台北市長郝龍斌、新北市長朱立倫輪番表
態,要黃退選。"}
]
8. • JSONObject jsonObject = new JSONObject(jsonNews)
• jsonObject.get(“like”)
• JSONArray jsonArray = new JSONArray (jsonNews)
• jsonArray.get(0)
• 其他可用方法
• getString() getInt() getJSONArray() getJSONObject()
另外一種方法 org.json.JSONObject
{ "like": 22, "dislike": 11, "threat_level": 3, "category":
"policity", "title": "拚到底?黃景泰:對選情仍樂觀",
"snippet": "國民黨中央連日來「勸退」基隆市長參選人黃景
泰的聲浪不斷,台北市長郝龍斌、新北市長朱立倫輪番表
態,要黃退選。"}
9. 其他資料對應情形
• List => ArrayList (implement List介面的class)
• Dictionary => HashMap (implement Map介面的class)
11. 無法更新UI
• Only the original thread that created a view hierarchy can touch its views.
• 解決方法
• Handler{ handleMessage(Message msg) { // ui update stuff } }
• Activity{ runOnUiThread(new Runnable() { // ui update stuff } }
15. 幾個好網站
• JSON Editor Online - view, edit and format JSON online
• www.jsoneditoronline.org
• Pttrns
• http://www.pttrns.com/