<?xml version="1.0" encoding="UTF-8"?> <data> <head> <ver>协议版本</ver> <dev_type>设备类型</dev_type> <dev_sub_type>设备子类型</dev_sub_type> <dev_sn>设备编号</dev_sn> <cmd >命令字</cmd > <id>消息id</id> <rid>反馈消息id</rid> </head> <body> <city>上海</city> <weathers> <list> <value> <date>2014-2-23</date> <min_temp>12</min_temp> <max_temp>25</max_temp> <pm25>200</pm25> <type>晴转多云</type> <desc>天气状况描述</desc> </value> </list> </weathers> </body> </data>
Serializer serializer = new Persister(); File source = new File("/data/shareData/example.xml"); try { CommonUtil.weather1022= serializer.read(Weather1022.class, source); Log.i("ee",""+CommonUtil.weather1022.getHead().getCmd()); Log.i("ee",""+CommonUtil.weather1022.getWeather1022Body().getCity()); Log.i("ee",""+CommonUtil.weather1022.getWeather1022Body().getWeathersListOfBody().getListweatherValue().get(0).getDesc()); } catch (Exception e) { // TODO Auto-generated catch block Log.i("ee","mistake"+e.getMessage()); Toast.makeText(PageActivity.this, "接收数据异常", Toast.LENGTH_SHORT).show(); } }
import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name="value") public class WeatherValue { @Element(required = false) private String date; @Element(required = false) private String min_temp; @Element(required = false) private String max_temp; @Element(required = false) private String pm25; @Element(required = false) private String type; @Element(required = false) private String desc; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getMin_temp() { return min_temp; } public void setMin_temp(String min_temp) { this.min_temp = min_temp; } public String getMax_temp() { return max_temp; } public void setMax_temp(String max_temp) { this.max_temp = max_temp; } public String getPm25() { return pm25; } public void setPm25(String pm25) { this.pm25 = pm25; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } }
@Root(name="weathers",strict=false) public class WeathersListOfBody { @ElementList(name="list",required = false) private List<WeatherValue> listweatherValue; public List<WeatherValue> getListweatherValue() { return listweatherValue; } public void setListweatherValue(List<WeatherValue> listweatherValue) { this.listweatherValue = listweatherValue; } }
import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name="body",strict=false) public class Weather1022Body { @Element(required = false) private String city; @Element(name="weathers",required = false) private WeathersListOfBody weathersListOfBody; public String getCity() { return city; } public void setCity(String city) { this.city = city; } public WeathersListOfBody getWeathersListOfBody() { return weathersListOfBody; } public void setWeathersListOfBody(WeathersListOfBody weathersListOfBody) { this.weathersListOfBody = weathersListOfBody; } }
import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name="data",strict=false) public class Weather1022 { @Element Head head; @Element(name="body",required = false) Weather1022Body weather1022Body; public Head getHead() { return head; } public void setHead(Head head) { this.head = head; } public Weather1022Body getWeather1022Body() { return weather1022Body; } public void setWeather1022Body(Weather1022Body weather1022Body) { this.weather1022Body = weather1022Body; } }
因为这里我们的xml 有固定的head 变化的body,所以建的类名字有些奇怪,但是不会影响如何解析一个list型的xml
相关推荐
4. **序列化与反序列化**:在SimpleXML中,`Serializer.read()`方法用于将XML字符串反序列化为Java对象,而`Serializer.write()`方法则用于将Java对象序列化为XML字符串。这样,解析后的XML数据就可以方便地在GWT...
SimpleXML是一个Java库,它提供了一种简单的方式去序列化和反序列化XML数据。这个库的版本为2.7.1,体现在压缩包中的"simple-xml-2.7.1.jar"文件。它能够帮助开发者将Java对象转换成XML字符串,同时也能将XML字符串...
简单XML库(Simple XML)是Java中一个轻量级、高效的XML序列化和反序列化库,非常适合处理XML格式的数据。 首先,让我们了解Retrofit的基本概念。Retrofit由Square公司开发,它允许开发者通过简单的注解将HTTP操作...
XML序列化则可使用如JAXB或SimpleXML库,但其使用较为繁琐,且在Android生态中不如JSON流行。 除了HTTP请求,gRPC是一种现代化的RPC框架,它使用Protocol Buffers(protobuf)作为数据交换格式。protobuf提供了一种...
// 序列化RequestBody private String serializeRequestBody(Object requestBody) { ObjectMapper mapper = new ObjectMapper(); try { return mapper.writeValueAsString(requestBody); } catch ...
2. XML序列化与反序列化:在Java中,可以使用JAXB(Java Architecture for XML Binding)将对象转换为XML,反之亦然,实现数据的序列化和反序列化。 三、XML与Java 1. DOM(Document Object Model):Java中,XML...
在这个过程中,我们将探讨`SharedPreferences`的API,以及XML序列化和解析的相关知识。 `SharedPreferences` 是Android系统提供的一种持久化数据的方式,它使用键值对的形式存储数据,并且支持多种数据类型,如字符...
在客户端,我们需要使用如Gson或Jackson库将Java对象转换为JSON字符串,然后在服务器端进行反序列化处理。如果是XML,我们可以使用如org.xmlpull.v1.XmlPullParser或SimpleXML库进行相应操作。 考虑到性能和用户...
- SimpleXML Serializer:用于XML序列化。 - Android ROME FeedReader:用于读取RSS和Atom feeds。 2.6 使用示例 - **基本用法示例**:展示如何初始化RestTemplate并发送GET请求。 - **使用Gzip压缩**:演示如何...
首先,将XML解析为一个`JsonNode`对象,然后序列化成JSON字符串: ```java import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; ObjectMapper xml...
8. **序列化与反序列化**:在读取保存的对象时,可能涉及序列化和反序列化,Java提供了`Serializable`接口,或者可以使用第三方库如Gson, Jackson进行更灵活的序列化操作。 9. **资源文件读取**:Android工程中的...
首先,定义对应的POJO类,然后使用`SimpleXMLSerializer`进行反序列化: ```java @Root(name = "root") public class MyPojo { @Element private String someField; // ...其他字段 } Serializer ...
2. **数据解析与序列化**:服务器返回的数据通常是JSON格式,因此,客户端需要能够解析JSON。Android提供了Gson库,可以方便地将JSON字符串转化为Java对象。反之,当向服务器发送数据时,也需要将Java对象序列化为...
由于Android原生的HTTP客户端不支持SOAP,所以需要引入kSOAP来处理SOAP消息的序列化和反序列化,以便与Web服务进行交互。 **Android客户端开发流程**: 1. **初始化网络请求**:创建网络连接,设置HTTP头信息,如...
要使用SimpleXML,需要在项目中添加依赖,并创建相应的XML序列化和反序列化配置。 6. **处理网络上的XML**: 在Android中获取远程XML文件通常涉及网络请求。我们可以使用`HttpURLConnection`,`OkHttp`或`Retrofit...