java中json的使用

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"}]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值