您的位置:首页 > Web前端 > JavaScript

json-lib方法demo,对象,map,list,json之间的转化

2018-01-13 14:52 459 查看
json-lib是常用的json与对象或者集合之间相互转换的工具包, 现在对其中的常用方法做demo展示

package commonsTest;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import models.Person;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig;
import net.sf.json.util.PropertyFilter;

import org.junit.Test;

/**
* 介绍sf.json包下的JSONObject类demo
*
*/
public class Demo2 {

/**
* JSONObject继承了map,所以可以使用map的方法
* {"name":"张三","age":23,"addr":"北京"}
*/
@Test
public void test1(){
JSONObject json = new JSONObject();
json.put("name", "张三");
json.put("age", 23);
json.put("addr", "北京");
System.out.println(json);
}

/**
* 将对象解析成json
* {"addr":"北京","age":23,"name":"张三"}
*/
@Test
public void test2(){
Person p = new Person("张三",23,"北京");
JSONObject object = JSONObject.fromObject(p);
System.out.println(object);
}

/**
* 将map解析成json,
* 其实只要是对象就可以使用fromObject方法,
* {"age":23,"name":"张三","addr":"北京"}
*/
@Test
public void test3(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 23);
map.put("addr", "北京");
JSONObject object = JSONObject.fromObject(map);
System.out.println(object);
}

/**
* accumulate方法示例
* 返回结果 {"age":23,"name":["张三","李四"],"addr":"北京"}
*/
@Test
public void test4(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 23);
map.put("addr", "北京");
JSONObject object = JSONObject.fromObject(map);
object.accumulate("name","李四");
System.out.println(object);
}

/**
* jsonconfig的使用示例, 将name属性过滤
* {"age":23,"addr":"北京"}
*/
@Test
public void test5(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 23);
map.put("addr", "北京");
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"name"});
JSONObject object = JSONObject.fromObject(map, config);
System.out.println(object);
}

/**
* 两种得到json对象的方法
* {"age":23,"addr":"北京"}
*/
@Test
public void test6(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 23);
map.put("addr", "北京");
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"name"});
JSONObject object = JSONObject.fromObject(map, config);
System.out.println(object);

//另外一个种,将bean转换成json的方法
JSON json = JSONSerializer.toJSON(map, config);
System.out.println(json);
}

/**
* jsonconfg类的jsonpropertyfilter使用示例
* {"age":23,"name":"张三"}
*/
@Test
public void test7(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 23);
map.put("addr", "北京");
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
/**
* 当返回为true时拦截,
* source代表被解析的对象
* name代表属性
* value代表值
*/
@Override
public boolean apply(Object source, String name, Object value) {
return "北京".equals(value);
}
});
JSONObj
4000
ect object = JSONObject.fromObject(map, config);
System.out.println(object);
}

/**
* 将字符串解析成json对象
* {"age":23,"name":"张三","addr":"北京"}
*/
@Test
public void test8(){
String str = "{\"age\":23,\"name\":\"张三\",\"addr\":\"北京\"}";
JsonConfig config = new JsonConfig();
//		config.setExcludes(new String[]{"name"});
JSONObject object = JSONObject.fromObject(str, config);
System.out.println(object);
}

/**
* 将json对象转换成bean
* Person [name=张三, age=23, addr=北京]
*/
@Test
public void test9(){
String str = "{\"age\":23,\"name\":\"张三\",\"addr\":\"北京\"}";
JsonConfig config = new JsonConfig();
JSONObject object = JSONObject.fromObject(str, config);
Person bean = (Person) object.toBean(object,Person.class);
System.out.println(bean);
}

/**
* 将集合转换成json对象
* [{"addr":"北京","age":23,"name":"张三"},{"addr":"北京","age":24,"name":"李四"},{"addr":"北京","age":25,"name":"王五"}]
*/
@Test
public void test10(){
List<Person> list = new ArrayList<Person>();
Person p1 = new Person("张三",23,"北京");
Person p2 = new Person("李四",24,"北京");
Person p3 = new Person("王五",25,"北京");
list.add(p1);
list.add(p2);
list.add(p3);
JSONArray fromObject = JSONArray.fromObject(list);
System.out.println(fromObject);
}

/**
* jsonarray类转集合
* [Person [name=张三, age=23, addr=北京], Person [name=李四, age=24, addr=北京], Person [name=王五, age=25, addr=北京]]
*/
@Test
public void test11(){
String str = "[{\"addr\":\"北京\",\"age\":23,\"name\":\"张三\"},{\"addr\":\"北京\",\"age\":24,\"name\":\"李四\"},{\"addr\":\"北京\",\"age\":25,\"name\":\"王五\"}]";
JSONArray fromObject = JSONArray.fromObject(str);
List list = fromObject.toList(fromObject,Person.class);
System.out.println(list);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: