import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class JSONObjectSample {
private static SerializeConfig config;
static {
config = new SerializeConfig();
}
private static final SerializerFeature[] features = {
SerializerFeature.DisableCircularReferenceDetect,//打开循环引用检测,JSONField(serialize = false)不循环
SerializerFeature.WriteDateUseDateFormat,//默认使用系统默认 格式日期格式化
//SerializerFeature.WriteMapNullValue, //输出空置字段
//SerializerFeature.WriteNullListAsEmpty,//list字段如果为null,输出为[],而不是null
//SerializerFeature.WriteNullNumberAsZero,// 数值字段如果为null,输出为0,而不是null
//SerializerFeature.WriteNullBooleanAsFalse,//Boolean字段如果为null,输出为false,而不是null
//SerializerFeature.WriteNullStringAsEmpty//字符类型字段如果为null,输出为"",而不是null
};
/**
* 序列化列表输出的字符串
* @param object
* @return
*/
public static final void toJSONString() {
Map<Object, Object>map=new HashMap<Object, Object>();
List<String> datax = new ArrayList<String>();
List<Map<String, Object>> datay = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
datax.add(i+"");
Map<String, Object> ymap = new HashMap<String, Object>();
ymap.put("value", i);
ymap.put("name","企业资料变更");
datay.add(ymap);
}
map.put("datax", datax);
map.put("datay", datay);
System.out.println(JSON.toJSONString(map, config, features));
//{"datax":["0","1","2","3","4"],"datay":[{"name":"企业资料变更","value":0},{"name":"企业资料变更","value":1},{"name":"企业资料变更","value":2},{"name":"企业资料变更","value":3},{"name":"企业资料变更","value":4}]}
}
public static final void toJSONString1() {
Map<Object, Object>map=new HashMap<Object, Object>();
List<String> datax = new ArrayList<String>();
List<String> datay = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
datax.add(i+"");
datay.add(i+"aa");
}
map.put("datax", datax);
map.put("datay", datay);
System.out.println(JSON.toJSONString(map, config, features));
//{"datax":["0","1","2","3","4"],"datay":["0aa","1aa","2aa","3aa","4aa"]}
}
/**
* 序列化
*/
public static void toJsonString()
{
Person person=new Person();
person.setAge(11);
person.setName("aaa");
String text = JSON.toJSONString(person);
System.out.println(text);
// 输出结果:{"age":11,"name":"aaa"}
}
/**
* 反序列化为json对象
*/
public static void parseJsonObject() {
String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
JSONObject json = JSON.parseObject(text);
System.out.println(json);
// 输出结果:{"age":105,"id":"testFastJson001","name":"maks"}
}
/**
* 反序列化为javaBean对象
*/
public static void parseBeanObject(){
String text = "{\"age\":105,\"name\":\"maks\"}";
Person person = (Person) JSON.parseObject(text, Person.class);
System.out.println("person==" + person.getAge() + "," + person.getName());
// 输出结果:person==105,maks
}
/**
* 将javaBean转化为json对象
*/
public static void bean2Json(){
Person person=new Person();
person.setAge(1111);
person.setName("aaa");
JSONObject jsonObj = (JSONObject) JSON.toJSON(person);
System.out.println("jsonObj==" + jsonObj);
Person p=JSON.toJavaObject(jsonObj, Person.class);
System.out.println("++++++++"+jsonObj.toString());
System.out.println("p==" + p.getAge() + "," + p.getName());
// 输出结果:jsonObj=={"age":1111,"name":"aaa"}
// 输出结果:p==1111,aaa
}
/**
* 全序列化 直接把java bean序列化为json文本之后,
* 能够按照原来的类型反序列化回来。支持全序列化,
* 需要打开SerializerFeature.WriteClassName特性
*/
public static void parseJSONAndBeanEachother(){
Person person=new Person();
person.setAge(1111);
person.setName("aaa");
SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
String text = JSON.toJSONString(person, featureArr);
System.out.println("text==" + text);
// 输出结果:text=={"@type":"Person","age":1111,"name":"aaa"}
Person userObj = (Person) JSON.parse(text);
System.out.println("userObj==" + userObj.getAge() + "," + userObj.getName() + "," + userObj.getAge());
// 输出结果:userObj==1111,aaa,1111
}
public static void main(String[] args) {
toJSONString();
toJSONString1();
//toJSON();
toJsonString();
parseJsonObject();
parseBeanObject();
bean2Json();
parseJSONAndBeanEachother();
Map<String, Person> maps = new HashMap<String, Person>();
Person person=new Person();
person.setAge(1111);
person.setName("aaa");
maps.put("s1", person);
maps.put("s2", person);
byte[] bytes = JSON.toJSONBytes(maps,features);
System.out.println(JSON.toJSONString(maps));
System.out.println(new String(bytes));
}
}
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Test1 {
public static void main(String[] args) {
String str="内检:aaaaa;";
String []sblbArrs=new String[]{"11","22","33","44"};
for (String sq : sblbArrs) {
System.out.println(sq);
}
if(str.contains("内检")){
String[]s=str.split(";");
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}
}else{
str+="外检:bbbbb;";
}
}
}