前端之家收集整理的这篇文章主要介绍了
fastJson的Demo,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArrayimport com.alibaba.fastjson.JSONObject import java.util.ArrayListimport java.util.HashMapimport java.util.Listimport java.util.Map //下面是FastJson的简介:常用的方法! // Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 // public static final Object parse(String text); // 把文本parse为JSONObject或者JSONArray // public static final JSONObject parSEObject(String text); // 成JSONObject // public static final <T> T parSEObject(String text,Class<T> clazz); // JavaBean // public static final JSONArray parseArray(String text); // // public static final <T> List<T> parseArray(String text,Class<T> clazz); //JavaBean集合 // public static final String toJSONString(Object object); // 将序列化为文本 // public static final String toJSONString(Object object,boolean prettyFormat); // 序列化为带格式的// public static final Object toJSON(Object javaObject); 转换为JSONArray(和上面方法的区别是返回值是不一样的) // JSONObject 相当于Map<Obj,Obj> // JSONArray List<Obj> /** @H_301_116@ * @H_301_116@这是关于@H_301_116@FastJson@H_301_116@的一个使用@H_301_116@Demo@H_301_116@,在@H_301_116@Java@H_301_116@环境下验证的; @H_301_116@ @H_301_116@* @H_301_116@使用的时候可以参照这个例子进行回忆! @H_301_116@备注:下面写的@H_301_116@Json@H_301_116@格式的数据@H_301_116@"@H_301_116@前面的@H_301_116@\@H_301_116@,意思是告诉编译器忽略掉它后面的@H_301_116@。 @H_301_116@后面定义有三个类:@H_301_116@User@H_301_116@、@H_301_116@Group@H_301_116@Weibo @H_301_116@@author @H_301_116@liuzhao @H_301_116@ */ @H_301_116@public class Main3 {
public static void main(String[] args) {
json2JsonObjectM1();Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 json2BeanM2()文本数据转换为数据! json2JSONArrayM3()json数据转化为JSONArray: json2JavaBeanM4()文本转换为的集合;转换为单纯的1个Object:parSEObject(String text,Class<T> clazz); bean2JsonM5()格式的数据/Json文本 用户数据的传递:例如上传服务器 bean2JSONObjectM6()对象 complexExampleM7()一个相对复杂的例子: complex2JsonM8()一个复杂的到的Demo complexMap2JsonM9()Map数据转换为JsonStringDemo;这个对RedBoy服务端不就直接破了嘛! }
将@H_301_116@文本数据信息转换为@H_301_116@JsonObject@H_301_116@对象,然后利用键值对的方式获取信息 @H_301_116@*/ @H_301_116@ @H_301_116@private static void json2JsonObjectM1() {
System.out@H_301_116@.println("\njson2JsonObjectM1:")一个文本数据 String s = "{\"name:liuzhao}"Json JSONObject object = JSON.parSEObject(s)利用键值对的方式获取到值 System.out@H_301_116@.println(object.get("name")) 打印: @H_301_116@* liuzhao @H_301_116@ */ @H_301_116@ @H_301_116@}
文本数据转换为@H_301_116@JavaBean@H_301_116@数据! @H_301_116@需要注意的是:这时候的@H_301_116@文本信息中的键的名称必须和@H_301_116@中的字段名称一样!键中没有的在这个@H_301_116@中就显示为@H_301_116@null@H_301_116@! @H_301_116@json2BeanM2() {
System.json2BeanM2:") String s = id0375,city平顶山一个简单方便 的方法将文本信息转换为对象的同时转换为对象! Weibo weibo = JSON.parSEObject(s,Weibo.class)//Weibo类在下边定义 out@H_301_116@.println(weibo.getId()) System.out@H_301_116@.println(weibo.getCity())打印的结果 0375 平顶山 }
Map@H_301_116@类型的数据转换为@H_301_116@JsonString @H_301_116@complexMap2JsonM9() {
System.complexMap2JsonM9:") Group group = new Group() group.setId(1) group.setName("group") User user1 = new User() user1.setId(2) user1.setName("user1") User user2 = user2.setId(3) user2.setName("user2") group.getList().add(user1) group.getList().add(user2) Map<Integernew HashMap<Integer map.put(1"No.1")2"No.2")3 String jsonString = JSON.toJSONString(map)out@H_301_116@.println(jsonString)输出:@H_301_116@{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]} @H_301_116@由一个复杂的@H_301_116@Object@H_301_116@到@H_301_116@的@H_301_116@Demo @H_301_116@complex2JsonM8() {
System.complex2JsonM8:") String jsonString = JSON.toJSONString(group){"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"} @H_301_116@一个相对复杂的例子: @H_301_116@* JSON@H_301_116@文本数据: @H_301_116@首先是@H_301_116@JSONObject@H_301_116@,转换为@H_301_116@JSONArray@H_301_116@; @H_301_116@然后将@H_301_116@转换为@H_301_116@JavaBean @H_301_116@complexExampleM7() {
System.complexExampleM7:")"{js:[{id:110000北#001京市},{id:#002}" + "," "{id:#006#005120000天#009津市}]}" JSONObject object = JSON.parSEObject(s) Object jsonArray = object.get("js")out@H_301_116@.println(jsonArray.getClass().getName()); 输出com.alibaba.fastjson.JSONArray System.out@H_301_116@.println(jsonArray) List<Weibo> list = JSON.parseArray(jsonArray+""转化为List<Weibo> for (Weibo weibo : list) {
System. }
}
JSON@H_301_116@对象 @H_301_116@bean2JSONObjectM6() {
System.bean2JSONObjectM6:") Weibo weibo = new Weibo("0373""洛阳") JSONObject json = (JSONObject) JSON.toJSON(weibo)out@H_301_116@.println(json.get("id"))* 0373 @H_301_116@文本转换为@H_301_116@的集合; @H_301_116@内部实现肯定是:首先转换为@H_301_116@,然后再转换为@H_301_116@List@H_301_116@集合 @H_301_116@json2JavaBeanM4() {
System.json2JavaBeanM4:")"[{0377南阳}]" List<Weibo> list = JSON.parseArray(s for (Weibo weibo : list) {
System. }
平顶山 @H_301_116@南阳 @H_301_116@json@H_301_116@数据转化为@H_301_116@JSONArray: @H_301_116@注意:获取到@H_301_116@之后(我们这里只是获取到@H_301_116@而不是@H_301_116@集合) @H_301_116@获取@H_301_116@中的数据转换为@H_301_116@String@H_301_116@类型需要在外边加@H_301_116@""; @H_301_116@json2JSONArrayM3() {
System.json2JSONArrayM3:") JSONArray array = JSON.parseArray(s)这行必须写:必须加上+"";不然会报出类型强转异常! String str = array.get(1)+out@H_301_116@.println(array.get(0)) JSONObject object = JSON.parSEObject(str) * {"city":"@H_301_116@平顶山@H_301_116@","id":"0375"} @H_301_116@ 0377 @H_301_116@ @H_301_116@}
/Json@H_301_116@文本 @H_301_116@用户数据的传递:例如上传服务器 @H_301_116@bean2JsonM5() {
System.bean2JsonM5:")"123456"上海 String string = JSON.toJSONString(weibo)out@H_301_116@.println(string)* {"city":"@H_301_116@上海@H_301_116@301_116@ @H_301_116@}
}
class User{
private int id private String name public int getId() {
return }
public void setId(int id) {
this.id = idpublic String getName() {
setName(String name) {
name = name }
}
class Group{
private List<User> list = new ArrayList<User>()public List<User> getList() {
listsetList(List<User> list) {
list = list }
}
class Weibo {
private String city public Weibo(String id this.city = city }
public Weibo() {
}
setId(String id) {
getCity() {
setCity(String city) {
; }
}