android 解析获取来的xml
来源:互联网 发布:手机英文翻译软件 编辑:程序博客网 时间:2024/06/06 20:34
学习了有一段时间的java了,现在又在学习Android,感觉Android相对J2EE似乎要简单一点点,不知道是不是自己目前接触还不多。很久都想把当天学习的东西,晚上也点博客记录,但是一直都没有来写,今天终于下心来写。好了,不多说了,进入主题:今天学了点xml解析,其实大多数都是java的。
解析用到的google的第三方包(下载地址http://code.google.com/p/google-gson/)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String spec = "http://192.168.1.113:8888/persons.js";
try {
URL url = new URL(spec);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");// 设置提交的方法,此处大写
conn.setConnectTimeout(5000);// 设置超时链接时间
conn.setDoOutput(true);// 设置链接可以输出或者输入文件
conn.setDoInput(true);
int code = conn.getResponseCode();// 设置链接的返回码
while (code == 200) {
InputStream is = conn.getInputStream();
String str = read(is);// 写一个方法,读取输入流中的数据,并且转化为字符串
JSONArray jsonArray = new JSONArray(str);// 把字符串转化为JSON串
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);// 获得JSON串中JSON对象
Person person = new Person();
person.setId(jsonObject.getInt("id"));
person.setName(jsonObject.getString("name"));
person.setAge(jsonObject.getInt("age"));
System.out.println(person);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private String read(InputStream is) throws Exception {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = is.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
byte[] data = bos.toByteArray();
return new String(data, "utf-8");
}
封装json数据的方法:在服务器中Servlet中
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
List<Person> list = new ArrayList<Person>();
for (int i = 0; i < 4; i++) {
Person person = new Person(i, "test" + i, i + 20);
list.add(person);
}
JSONStringer stringer = new JSONStringer();
try {
stringer.array();
for (Person person : list) {
stringer.object().key("id").value(person.getId()).key("name")
.value(person.getName()).key("age")
.value(person.getAge()).endObject();
}
stringer.endArray();
} catch (JSONException e) {
e.printStackTrace();
}
response.getOutputStream().write(stringer.toString().getBytes("UTF-8"));
response.setContentType("text/json; charset=UTF-8"); // JSON的类型为text/json
}
- android 解析获取来的xml
- Android中使用SAX来解析XML
- Android中使用SAX来解析XML
- Android 采用PULL来解析XML
- Android 采用PULL来解析XML
- android使用XmlPullParser来解析XML文件
- android使用XmlPullParser来解析XML文件
- Android 采用PULL来解析XML
- Android 采用PULL来解析XML
- Android如何获取asset下的xml文件,并解析
- android的xml解析
- android XML的解析
- android xml 的解析.
- Android的XML解析
- Android xml的解析
- android xml 的解析
- Android Xml的解析
- 用JQuery来完成XML的解析
- this惹得祸
- 观察者模式
- 再译《F# 基础》序
- Unity不同平台生成中预处理的注意点
- linux 安装 JDK
- android 解析获取来的xml
- 蓝桥杯 求最大最小公倍数
- PAT 1040. Longest Symmetric String (25)
- 集群管理系统 Saltstack的资源配置及性能测试
- MFC 如何修改BMP图片的大小
- OpenJDK:构建JDK
- Xamarin用熟悉的C#开发出iOS、Android 与Windows 等平台的原生(Native) App 应用程序
- 观察者模式
- oracle中带游标的存储过程示例