java 与前端 交互xml 和json

一般后台代码和前端进行交互的都是xml 和json 格式数据:

先来举例说明一下如何通过xml 和前端页面交互数据:

例子:做一个省市联动效果:

首先的引入jar:

xstream-1.3.1.jar


下面可以开始工作了:

定义连个javabean实体:

City类:

//这是给类取个别名
@XStreamAlias("City")
public class City {
public City(){}
public City(int code,String name)
{
this.code=code;
this.name=name;
}
//这是给属性取个别名
@XStreamAsAttribute
private int code;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//这是给属性取个别名
@XStreamAsAttribute
private String name;


}

province类:

@XStreamAlias("province")
public class Province {
public Province(){}
public Province(int code,String name)
{
this.code=code;
this.name=name;
}


public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XStreamAsAttribute
private int code;
@XStreamAsAttribute
private String name;
@XStreamImplicit(itemFieldName="city")
private List<City> citys;
public List<City> getCitys() {
return citys;
}
public void setCitys(List<City> citys) {
this.citys = citys;
}
}


获取xml 和json 格式数据:

package comdsp.data;


import java.util.ArrayList;
import java.util.List;


import net.sf.json.JSONArray;


import com.dsp.domain.City;
import com.dsp.domain.Province;
import com.thoughtworks.xstream.XStream;


public class InitData {
public static String getXML() {
List<Province> provinces = new ArrayList<Province>();
Province p1 = new Province();
p1.setCode(1);
p1.setName("江西");


Province p2 = new Province();
p2.setCode(2);
p2.setName("上海");


Province p3 = new Province();
p3.setCode(3);
p3.setName("河南");
ArrayList<City> list = new ArrayList<City>();
list.add(new City(01, "南昌"));
list.add(new City(02, "抚州"));
list.add(new City(03, "九江"));


p1.setCitys(list);


ArrayList<City> list2 = new ArrayList<City>();
list2.add(new City(01, "浦东"));
list2.add(new City(02, "长宁"));
list2.add(new City(03, "闸北"));


p2.setCitys(list2);


ArrayList<City> list3 = new ArrayList<City>();
list3.add(new City(01, "郑州"));
list3.add(new City(02, "开封"));
list3.add(new City(03, "周口"));


p3.setCitys(list3);


provinces.add(p1);
provinces.add(p2);
provinces.add(p3);
XStream xs = new XStream();
xs.autodetectAnnotations(true);
xs.alias("provinces", List.class);


String str = xs.toXML(provinces);


return str;
}


public static String getJosn() {
List<Province> provinces = new ArrayList<Province>();
Province p1 = new Province();
p1.setCode(1);
p1.setName("江西");


Province p2 = new Province();
p2.setCode(2);
p2.setName("上海");


Province p3 = new Province();
p3.setCode(3);
p3.setName("河南");
ArrayList<City> list = new ArrayList<City>();
list.add(new City(01, "南昌"));
list.add(new City(02, "抚州"));
list.add(new City(03, "九江"));


p1.setCitys(list);


ArrayList<City> list2 = new ArrayList<City>();
list2.add(new City(01, "浦东"));
list2.add(new City(02, "长宁"));
list2.add(new City(03, "闸北"));


p2.setCitys(list2);


ArrayList<City> list3 = new ArrayList<City>();
list3.add(new City(01, "郑州"));
list3.add(new City(02, "开封"));
list3.add(new City(03, "周口"));


p3.setCitys(list3);


provinces.add(p1);
provinces.add(p2);
provinces.add(p3);
String str= JSONArray.fromObject(provinces).toString();
return str;

}
}

测试类:

package com.dsp.test;


import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


import org.junit.Test;


import com.dsp.domain.City;
import com.dsp.domain.Province;
import com.thoughtworks.xstream.XStream;


import comdsp.data.InitData;


public class xmltest {
@Test
public void test2() {
String str = InitData.getJosn();
JSONArray json = JSONArray.fromObject(str);
for (int i = 0; i < json.size(); i++) {
JSONObject obj = json.getJSONObject(i);
Province p = (Province) JSONObject.toBean(obj, Province.class);
System.out.println("------------------");
System.out.println(p.getCode() + ":" + p.getName());
System.out.println("---------");
String citystr = obj.getString("citys");


JSONArray jsoncity = JSONArray.fromObject(citystr);
Collection citys = JSONArray.toCollection(jsoncity, City.class);
if (citys != null && !citys.isEmpty()) {
Iterator it = citys.iterator();
while (it.hasNext()) {
JSONObject jsonobj = JSONObject.fromObject(it.next());
City city = (City) JSONObject.toBean(jsonobj, City.class);
System.out.println(city.getCode() + ":" + city.getName());


}
}
}


}


@Test
public void test1() {
System.out.println(InitData.getJosn());
}


@Test
public void test() {
List<Province> provinces = new ArrayList<Province>();
Province p1 = new Province();
p1.setCode(1);
p1.setName("江西");


Province p2 = new Province();
p2.setCode(2);
p2.setName("上海");


Province p3 = new Province();
p3.setCode(3);
p3.setName("河南");
ArrayList<City> list = new ArrayList<City>();
list.add(new City(01, "南昌"));
list.add(new City(02, "抚州"));
list.add(new City(03, "九江"));


p1.setCitys(list);


ArrayList<City> list2 = new ArrayList<City>();
list2.add(new City(01, "浦东"));
list2.add(new City(02, "长宁"));
list2.add(new City(03, "闸北"));


p2.setCitys(list2);


ArrayList<City> list3 = new ArrayList<City>();
list3.add(new City(01, "郑州"));
list3.add(new City(02, "开封"));
list3.add(new City(03, "周口"));


p3.setCitys(list3);


provinces.add(p1);
provinces.add(p2);
provinces.add(p3);
XStream xs = new XStream();
xs.autodetectAnnotations(true);
xs.alias("provinces", List.class);


String str = xs.toXML(provinces);
System.out.println(str);
}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值