获取XML和JSON
public class PersonService { public List<Person> getXmlPersons() throws Exception { URL url = new URL("http://192.168.1.240:8080/WebServer/persons.xml"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int code = conn.getResponseCode(); if (code == 200) { return parseXML(conn.getInputStream()); // 获取输入流, 解析 } throw new NetworkErrorException("网络异常: " + code); } private List<Person> parseXML(InputStream in) throws Exception { XmlPullParser parser = Xml.newPullParser(); parser.setInput(in, "UTF-8"); List<Person> persons = new ArrayList<Person>(); Person p = null; for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT; type = parser.next()) { if (type == XmlPullParser.START_TAG) { // 如果遇到开始标签 if ("person".equals(parser.getName())) { // 开始person p = new Person(); // 创建Person String id = parser.getAttributeValue(0); // 获取id属性 p.setId(Integer.parseInt(id)); // 设置id persons.add(p); // 加入集合 } else if ("name".equals(parser.getName())) { // 开始name String name = parser.nextText(); // 获取下一个文本 p.setName(name); // 设置name } else if ("age".equals(parser.getName())) { // 开始age String age = parser.nextText(); // 获取下一个文本 p.setAge(Integer.parseInt(age)); // 设置age } } } return persons; } public List<Person> getJsonPersons() throws Exception { URL url = new URL("http://192.168.1.240:8080/WebServer/persons.js"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int code = conn.getResponseCode(); if (code == 200) { return parseJSON(conn.getInputStream()); } throw new NetworkErrorException("网络异常: " + code); } private List<Person> parseJSON(InputStream in) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[8192]; int length; while ((length = in.read(buffer)) != -1) out.write(buffer, 0, length); in.close(); out.close(); List<Person> persons = new ArrayList<Person>(); String json = new String(out.toByteArray()); JSONArray arr = new JSONArray(json); // 把字符串封装成JSON数组 for (int i = 0; i < arr.length(); i++) { // 遍历数组 JSONObject obj = arr.getJSONObject(i); // 获取每个JSON对象 Person p = new Person(); p.setId(obj.getInt("id")); // 获取JSON对象中的属性 p.setName(obj.getString("name")); p.setAge(obj.getInt("age")); persons.add(p); } return persons; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。