WEB开发网
开发学院手机开发Android 开发 android 开发网络程序 阅读

android 开发网络程序

 2010-09-14 23:41:00 来源:WEB开发网   
核心提示:清单 8 中的大部分代码都在 newHandler() 方法中,该方法创建一个 ContentHandler,android 开发网络程序(9),如果熟悉 SAX 解析, 会知道 ContentHandler 通过响应 SAX 解析器触发的各种事件创建解析数据,Android 包括一个 JSON 解析器,(您可以从 J

清单 8 中的大部分代码都在 newHandler() 方法中,该方法创建一个 ContentHandler。如果熟悉 SAX 解析, 会知道 ContentHandler 通过响应 SAX 解析器触发的各种事件创建解析数据。newHandler() 方法使用 Android 便捷 API 指定使用事件处理程序的 ContentHandler。代码只是侦听在解析器遇到各种标记时触发的事件,然后选取数据,放到 Stock 对象列表中。 创建 ContentHandler 后,调用 Xml.parse() 方法来解析基类提供的 InputStream 并返回 Stock 对象数组。这是快速解析 XML 的方法,但是 —即使使用 Android 提供的便捷 API— 它也是非常冗长的。

回页首

使用 JSON

XML 是 Android 上的一等公民,鉴于依赖于 XML 的 Web 服务的数量,这是个好事。很多服务还支持另一个流行格式 JSON。它通常比 XML 简洁一些,但也是人们可读的,使得它更易于使用,并且可以更轻松地将其用于调试使用它的应用程序。Android 包括一个 JSON 解析器。(您可以从 JSON.org 网站获得该解析器,只是要去除几个手机不需要的类)。 清单 9 显示了使用中的解析器:

清单 9. JSON 解析器实现


private class StockJsonParser extends BaseStockParser{
public StockJsonParser(){
super("json");
}
@Override
protected Stock[] doInBackground(String... symbols) {
Stock[] stocks = new Stock[symbols.length];
try{
StringBuilder json = new StringBuilder();
BufferedReader reader =
new BufferedReader(
new InputStreamReader(getData(symbols)));
String line = reader.readLine();
while (line != null){
json.append(line);
line = reader.readLine();
}
JSONObject jsonObj = new JSONObject(json.toString());
JSONArray stockArray = jsonObj.getJSONArray("stocks");
for (int i=0;i<stocks.length;i++){
JSONObject object =
stockArray.getJSONObject(i).getJSONObject("stock");
stocks[i] = new Stock(object.getString("symbol"),
object.getString("name"),
object.getDouble("price"));
}
} catch (Exception e){
Log.e("DayTrader", "Exception getting JSON data", e);
}
return stocks;
}
}

上一页  4 5 6 7 8 9 10 11 12  下一页

Tags:android 开发 网络

编辑录入:coldstar [复制链接] [打 印]
赞助商链接