码迷,mamicode.com
首页 > 其他好文 > 详细

XStream的使用方法、简单使用方法

时间:2016-08-17 01:37:21      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

下面介绍的是在Android Studio中的使用

Android Studio中目前支持的Xstream最高版本是xstream-1.4.7.jar,我是直接将jar包放到libs中使用的,因为我尝试在build.gradle中complie,但是编译的时候还是不通过。

我使用的是okhttp的client。

下面介绍的是项目开发中从网络获取xml文件并解析成javaBean的方法。

1.网络服务器中的xml文件

<person name="johnson">
<firstname>Joe</firstname>
  <lastname>Walnes</lastname>
    <phone>  
    <phoneno>0107654321</phoneno>  
  </phone>
      <phone>  
    <phoneno>13800008888</phoneno>  
  </phone>
</person>

 

2.     javaBean


//设置Person类在xml中的别名
@XStreamAlias("person")
public class Person {
//将name设置为XML person字段的 attribute
@XStreamAsAttribute()
private String firstname;
private String lastname;
//该变量不是xml中的一个字段,应去掉
@XStreamImplicit()
private List<Phone> phone = new ArrayList<Phone>();

@Override
public String toString() {
return "Person{" +
"firstname=‘" + firstname + ‘\‘‘ +
", lastname=‘" + lastname + ‘\‘‘ +
‘}‘;
}

public List<Phone> getPhoneno() {
return phone;
}

public void setPhoneno(List<Phone> phone) {
this.phone = phone;
}

class Phone{
String phoneno;

@Override
public String toString() {
return "Phone{" +
"phoneno=" + phoneno +
‘}‘;
}
}
}

 

3.使用

public void test() {
        OkHttpClient okHttpClient = new OkHttpClient();//定义client
        Request request = new Request.Builder().url("http://192.168.1.100:8080/test/test.xml").build();//定义request
        okhttp3.Call call = okHttpClient.newCall(request);//用client使用call
        call.enqueue(new okhttp3.Callback() {//异步请求网络数据
            @Override
            public void onFailure(okhttp3.Call call, IOException e) {//请求失败的情况
                System.out.println("fail:");
                e.printStackTrace();
            }

            @Override
            public void onResponse(okhttp3.Call call, okhttp3.Response response) throws IOException {//请求成功的情况
                XStream xStream = new XStream(new DomDriver("UTF-8"));
          //对指定的类使用Annotations 进行序列化,这步非常关键 xStream.processAnnotations(Person.class); if (response.isSuccessful()) { String string = response.body().string(); Person person = (Person) xStream.fromXML(string); System.out.println(person.toString()+person.getPhoneno().toString());
               }
    }
   });
}
 

其实也就这步关键而已,其他的不重要:

  //对指定的类使用Annotations 进行序列化
   xstream.processAnnotations(Person.class);

 

运行结果:

Person{firstname=‘Joe‘, lastname=‘Walnes‘}[Phone{phoneno=0107654321}, Phone{phoneno=13800008888}]

 

XStream的使用方法、简单使用方法

标签:

原文地址:http://www.cnblogs.com/johnsonwei/p/5778406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!