flex与java间用json传输数据
1.从java到flex,将一个map或对象/自定义对象转为String,这里用HttpServlet
java端
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Map map = new HashMap();
map.put("name", "wxj");
map.put("age", 20);
map.put("tall", "163");
//将一个map转换为一个JSON对象
JSONObject object = JSONObject.fromObject(map);
System.out.println("json object: " + object);
out.println(object);
out.flush();
out.close();
}
flex端
public function jsonResult(event:ResultEvent):void{
var person:Object = JSON.decode(testjson.lastResult.toString());
json1.text = person.name + "," + person.age + "," + person.tall;
}
2.从java到flex,将一个map或自定义对象转为String,这里用RemoteObject
java端
/**
* 将一个map或对象转为String
* @param id
* @return
*/
public String getUser(int id){
Map map = new HashMap();
if(id == 1){
map.put("name", "wxj");
map.put("age", 20);
map.put("tall", "163");
return JSONObject.fromObject(map).toString();
}else {
User user = new User();
user.setId(100);
user.setUserName("中国");
user.setPwd("哈哈...");
return JSONObject.fromObject(user).toString();
}
flex端
public function userResult(event:ResultEvent):void{
var person:Object = JSON.decode(event.result.toString());
json2.text = person.id + "," + person.userName + "," + person.pwd;
}
3.从java到flex,将一个List转换为String,这里用RemoteObject
java端
/**
* 将一个List转换为String返回
* @return
*/
public String getUsers(){
List userList = new ArrayList();
User user1 = new User();
user1.setId(1);
user1.setUserName("wxj");
user1.setPwd("wxj1111");
userList.add(user1);
User user2 = new User();
user2.setId(1);
user2.setUserName("zs");
user2.setPwd("zs23222");
userList.add(user2);
User user3 = new User();
user3.setId(1);
user3.setUserName("ls");
user3.setPwd("lisi12312");
userList.add(user3);
return JSONArray.fromObject(userList).toString();
}
flex端
public function usersResult(event:ResultEvent):void{
//先转换为数组
var acc:Array = JSON.decode(event.result.toString()) as Array;
//dg是一个DataGrid
dg.dataProvider = new ArrayCollection(acc);
}
4.从flex到java
flex端
/**
* 添加用户
*/
public function addUser():void{
var user:Object = {};
user.userName = userName.text;
user.pwd = pwd.text;
var json:String = JSON.encode(user);
userRO.addUser(json);
}
/**
*用户列表
*/
public function addUserResult(event:ResultEvent):void{
dg2.dataProvider = new ArrayCollection(JSON.decode(event.result.toString()) as Array);
}
java端
/**
* 添加用户
*/
public String addUser(String json){
JSONObject data = JSONObject.fromObject(json);
User user = (User)JSONObject.toBean(data, User.class);
//System.out.println(data.get("userName"));
//System.out.println(data.get("pwd"));
List userList = new ArrayList();
user.setId(10);
userList.add(user);
return JSONArray.fromObject(userList).toString();
}