json串示例
[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]
主要分为以下几种:
1. 直接构建json串,主要代码;
2. json串 ->java对象;
3. java对象 ->json串/json对象;
4.List<?> -> json串;
5. 对象数组 ->json串。
程序如下:
TestJson.java
importjava.util.*;
importnet.sf.json.*;
importcom.hs.sig.ui.sgms.vo.User;
publicclass TestJson {
/**
* 初始化userList大小
*/
publicstatic final int USERLISTSIZE = 3;
/**
* 直接构建json串
* @return
*/
publicString toJsonString() {
// 初始化 User 对象
Useruser = null;
List<User>userList = this.initUserList(USERLISTSIZE);
// 构建 json 串
StringBufferjson = newStringBuffer();
json.append("[");
for(int i =0; i < userList.size(); i++) {
user =userList.get(i);
json.append("{");
json.append("\"id\":\"").append(user.getId()).append("\",");
json.append("\"name\":\"").append(user.getName()).append("\",");
json.append("\"password\":\"").append(user.getPassword()).append("\",");
json.append("\"remark\":\"").append(user.getRemark()).append('"');
json.append("},");
}
json.deleteCharAt(json.lastIndexOf(","));
json.append("]");
//System.out.println("直接构建 json 串结果:" +json.toString());
returnjson.toString();
}
/**
* json串 -> java对象
* @return
*/
publicString jsonToObject() {
StringBufferinfo = newStringBuffer();
if(this.isArray(this.toJsonString())){
JSONArrayjSONArray = JSONArray.fromObject(this.toJsonString());
JsonConfigjsonConfig = newJsonConfig();
jsonConfig.setArrayMode(JsonConfig.MODE_LIST);
jsonConfig.setRootClass(User.class);
List<User>userList = (List<User>) JSONSerializer.toJava(jSONArray,jsonConfig);
Useruser = null;
for(int i =0; i < userList.size(); i++) {
user =userList.get(i);
info.append("user"+ (i + 1) + ".id=" + user.getId());
info.append(",user"+ (i + 1) + ".name=" + user.getName());
info.append(",user"+ (i + 1) + ".password=" + user.getPassword());
info.append(",user"+ (i + 1) + ".remark=" + user.getRemark());
info.append("\n");
}
//System.out.println("json串 ->java对象:" +info.toString());
}
returninfo.toString();
}
/**
* java对象 ->json串/json对象
* @return
*/
publicString objectToJson() {
// 初始化一个user对象
Useruser = null;
List<User>userList = this.initUserList(USERLISTSIZE);
user =userList.get(0);
// 转换user对象的配置
JsonConfigjsonConfig = newJsonConfig();
// 过滤对象中不需要转化的属性
jsonConfig.setExcludes(newString[]{"id"});
// 将对象user转化为json串
JSONArrayjsonArray = JSONArray.fromObject(user,jsonConfig);
//jsonArray= JSONArray.fromObject(user);
// 转化为json对象
//JSONObjectjsonObject = JSONObject.fromObject(user, jsonConfig);
//jsonObject= JSONObject.fromObject(user);
returnjsonArray.toString();
}
/**
*List<User> -> json串
* @return
*/
publicString listToJson(){
List<User>userList = this.initUserList(USERLISTSIZE);
// list转换为JSON串
JSONArrayjsonArray = JSONArray.fromObject(userList);
//System.out.println("List<User>-> json串:"+ jsonArray.toString());
returnjsonArray.toString();
}
/**
* 对象数组 ->json串
* @return
*/
publicString arrayToJson() {
List<User>userList = this.initUserList(USERLISTSIZE);
User[]userArray = newUser[userList.size()];
for(int i = 0 ; i <userList.size() ; i++){
userArray[i]= userList.get(i);
}
// user数组转为json串
JSONArrayjsonArray = JSONArray.fromObject(userArray);
//System.out.println("对象数组 ->json串:" +jsonArray.toString());
returnjsonArray.toString();
}
/**
* 初始化用户
* @param userListSizelist 的大小
* @return
*/
privateList<User> initUserList(intuserListSize) {
Useruser = null;
List<User>userList = newArrayList<User>();
for(int i =0; i < userListSize; i++) {
user = new User();
user.setId(i+ 1);
user.setName("name"+ (i + 1));
user.setPassword("password"+ (i + 1));
user.setRemark("remark"+ (i + 1));
userList.add(user);
}
returnuserList;
}
/**
* 判断JSON串是否以"["开头,是则认定为jsonArray,否则认定为jsonObject
* @param str
* @return
*/
privateboolean isArray(String str) {
returnstr.startsWith("[") ? true: false;
}
publicstatic void main(String[] args) {
TestJsontestJson = newTestJson();
System.out.println("直接构建json串:" +testJson.toJsonString());
System.out.println("json串 ->java对象:" +testJson.jsonToObject());
System.out.println("java对象 ->json串:" +testJson.objectToJson());
System.out.println("List<User>-> json串:"+ testJson.listToJson());
System.out.println("对象数组 ->json串:" +testJson.arrayToJson());
}
}
User.java
publicclass User {
privateInteger id;
privateString name;
privateString password;
privateString remark;
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
publicString getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password= password;
}
publicString getRemark() {
returnremark;
}
publicvoid setRemark(String remark) {
this.remark= remark;
}
publicInteger getId() {
returnid;
}
publicvoid setId(Integer id) {
this.id= id;
}
}
输出结果:
直接构建json串:[{"id":"1","name":"name1","password":"password1","remark":"remark1"},{"id":"2","name":"name2","password":"password2","remark":"remark2"},{"id":"3","name":"name3","password":"password3","remark":"remark3"}]
json串 ->java对象:user1.id=1,user1.name=name1,user1.password=password1,user1.remark=remark1
user2.id=2,user2.name=name2,user2.password=password2,user2.remark=remark2
user3.id=3,user3.name=name3,user3.password=password3,user3.remark=remark3
java对象 ->json串:[{"name":"name1","password":"password1","remark":"remark1"}]
List<User>-> json串:[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]
对象数组 -> json串:[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]