public class Users {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Users(String username, String password) {
this.username = username;
this.password = password;
}
public Users() {
}
}
下面我们使用代码来实现转换
Users users = new Users("张三", "q123");
//将Users对象转换为JSONObject
JSONObject jsonObject = JSONObject.fromObject(users);
//使用JSONObject的toString()方法将JSONObject转换成字符串
System.out.println( "users:" + jsonObject.toString() );
List listStr = new ArrayList(0);
listStr.add("小明");
listStr.add("小红");
JSONArray jsonListStr = JSONArray.fromObject(listStr);
System.out.println( "jsonListStr:" + jsonListStr.toString() );
List listUsers = new ArrayList(0);
listUsers.add(new Users("大名", "123"));
listUsers.add(new Users("大红", "456"));
JSONArray jsonListUsers = JSONArray.fromObject(listUsers);
System.out.println( "jsonListUsers:" + jsonListUsers.toString() );
Map mapStr = new HashMap(0);
mapStr.put("彩虹", "彩彩");
mapStr.put("豆豆", "小豆");
JSONObject jsonMapStr = JSONObject.fromObject(mapStr);
System.out.println( "jsonMapStr:" + jsonMapStr.toString() );
Map mapUser = new HashMap(0);
mapUser.put("1", new Users("小彩虹", "123"));
mapUser.put("2", new Users("小豆豆", "123"));
JSONObject jsonMapUser = JSONObject.fromObject(mapUser);
System.out.println( "jsonMapUser:" + jsonMapUser.toString() );
注意:请看好是用那种方式转换的users:{"password":"q123","username":"张三"}
jsonListStr:["小明","小红"]
jsonListUsers:[{"password":"123","username":"大名"},{"password":"456","username":"大红"}]
jsonMapStr:{"彩虹":"彩彩","豆豆":"小豆"}
jsonMapUser:{"1":{"password":"123","username":"小彩虹"},"2":{"password":"123","username":"小豆豆"}}
上面解释两个输出注:
在返回json数据的时候要注意,如果你是直接写成这样是不行
response.getWriter().print(jsonListStr.toString());
response.getWriter().print(jsonListUsers.toString());
response.getWriter().print(jsonMapStr.toString());
response.getWriter().print(jsonMapUser.toString());
这样的话无法在前台中获取数据(我这样是不行的),对于这种情况有两种解决方案 String test = "[" + jsonListStr.toString() + "," +
jsonListUsers.toString() + ","+
jsonMapStr.toString() + "," + jsonMapUser.toString() + "]";
手动拼接成一个数字,取值使用下标取,取出来的值是对象还是数组,这取决于你的值。 Map result = new HashMap(0);
result.put("jsonListStr", jsonListStr);
result.put("jsonListUsers", jsonListUsers);
result.put("jsonMapStr", jsonMapStr);
result.put("jsonMapUser", jsonMapUser);
result.put("users", jsonObject);
JSONObject jsonResult = JSONObject.fromObject(result);
System.out.print(jsonResult.toString());
response.getWriter().print(jsonResult.toString());
这种方式是创建了一个Map集合把数据都放进集合中,然后将集合转换成json对象,取值的时候需要通过键来取值,取出来的值是对象还是数组,这取决于你的值。
输出结果
获取jsonListStr下的所有元素
小明
小红
获取jsonListUsers下的所有元素
username大名password123
username大红password456
获取jsonMapStr下的所有元素,因为是Map集合所以要通过键来获取值
彩彩
小豆
获取jsonMapUser下的所有元素,因为是Map集合所以要通过键来获取值
username小彩虹password123
username小豆豆password123
获取users下的所有元素,因为是Map集合所以要通过键来获取值
username张三
passwordq123
javascript变量转JSON
此笔记代码
http://download.csdn.net/detail/gxy1317/9619516