fastjson在线解析
编辑: 成考报名 发布时间:09-30 阅读:
Fastjson使用例子
fastjson在线解析 第一篇
fastjson使用整理
1. fastjson序列化
序列化是指从java对象转换到json字符串格式过程,fastjson序列化支持序列化成可阅读性强的prettyjson格式json。
序列化使用代码为:
// FjsonDemo.java文件为:
public class FjsonDemo {
public static void main(String[] args) {
toJSONString();
}
public static void toJSONString() {
UserInfo user = new UserInfo();
user.setMessageCount(1);
Session session = new Session();
session.setFlag(1);
List<String> mobileList = new ArrayList<String>(); mobileList.add("13438351234");
mobileList.add("13438364231");
session.setMobileList(mobileList);
session.setSessionKey("07dKmRTD6FqXsz0r"); session.setUserId(10501L);
session.setVip(false);
user.setSession(session);
user.setUserName("helloworld");
user.setImage("cukOgXPuaqypOUBLG89vobY_E-Q.jpg");
// toJSONString方法为fastjson提供的序列化方法
// toJSONString设定true代表生成prettyJson风格字符串 String json = JSON.toJSONString(user);
String prettyJson = JSON.toJSONString(user, true); System.out.println(json);
System.out.println(prettyJson);
}
}
// UserInfo.java
public class UserInfo {
private String userName;
private int messageCount;
private String image;
private Session session;// session数据
// getter/setter方法省略
}
// Session.java文件为:
public class Session {
private String sessionKey;
private long userId;
private boolean isVip;// 生成的key名称为vip,干掉了is
private int flag;
private List<String> mobileList;
// getter/setter方法省略
}
2. fastjson反序列化
反序列化只指从json字符串转换到java对象,处理代码为:
// FjsonDemo.java文件为:
public class FjsonDemo {
public static void main(String[] args) {
String json = toJSONString();
UserInfo user = parseJSONString(json);
System.out.println("userName=" + user.getUserName()); System.out.println("userId="
user.getSession().getUserId());
}
// 序列化方法
public static String toJSONString() {
UserInfo user = new UserInfo();
user.setMessageCount(1);
Session session = new Session();
session.setFlag(1);
List<String> mobileList = new ArrayList<String>();
mobileList.add("13438351234");
mobileList.add("13438364231"); +
session.setMobileList(mobileList);
session.setSessionKey("07dKmRTD6FqXsz0r");
session.setUserId(10501L);
session.setVip(false);
user.setSession(session);
user.setUserName("helloworld");
user.setImage("cukOgXPuaqypOUBLG89vobY_E-Q.jpg");
String json = JSON.toJSONString(user);
String prettyJson = JSON.toJSONString(user, true);
System.out.println(json);
System.out.println(prettyJson);
return json;
}
// 反序列化方法
// 调用fastjson提供的parseObject方法,传入UserInfo.class参数 public static UserInfo parseJSONString(String json) {【fastjson在线解析】
UserInfo user = (UserInfo) JSON.parseObject(json, UserInfo.class);
return user;
}
输出结果为:
{"image":"cukOgXPuaqypOUBLG89vobY_E-Q.jpg","messageCount":1,"session":{"flag":1,"mobileList":["13438351234","13438364231"],"sessionKey":"07dKmRTD6FqXsz0r","userId":10501,"vip":false},"userName":"helloworld"}
{
"image":"cukOgXPuaqypOUBLG89vobY_E-Q.jpg",
"messageCount":1,
"session":{
"flag":1,
"mobileList":[
"13438351234",
"13438364231"
],
"sessionKey":"07dKmRTD6FqXsz0r",
"userId":10501,
"vip":false
},
"userName":"helloworld"
}
userName=helloworld
userId=10501
3. fastjson注解使用
3.1. JSONType
orders属性
ignores属性【fastjson在线解析】
orders属性可以设置序列化顺序,ignores可以将不需要序列化的字段排除掉
3.2. JSONField
name属性,设置别名
操作演示代码为:
// UserInfo.java文件为:
// 设置排序规则
@JSONType(orders = {
"session",
"image",
"mCount"
}, ignores = {
"userName"
})
public class UserInfo {
private String userName;
// 设置别名为mCount
@JSONField(name = "mCount")
private int messageCount;
private String image;
private Session session;
public String getUserName() {
return userName;
}
public void setUserName(String userName) { this.userName = userName;
}
public int getMessageCount() {
return messageCount;
}
public void setMessageCount(int messageCount) { this.messageCount = messageCount;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public Session getSession() {
return session;
}
public void setSession(Session session) { this.session = session;【fastjson在线解析】
}
}
// Session.java文件为:
// 设置排序规则
@JSONType(orders = {
"sessionKey",
"userId",
"vip",
"mobileList"
}, ignores = {
"flag"
})
public class Session {
private String sessionKey;
private long userId;
// 设置别名为vip
@JSONField(name = "vip")
private boolean isVip;
private int flag;
private List<String> mobileList;
public String getSessionKey() {
return sessionKey;
}
FastJson
fastjson在线解析 第二篇
package com.menghuan.json;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
;
public class FastJsonTools {
public FastJsonTools() {
// TODO Auto-generated constructor stub
}
/**
* @param object
* 是对解析的集合的类型
* @return
*/
public static String createJsonString(Object object){ String str = JSON.toJSONString(object);
return str;
}
/**
* @param <T>
* @param jsonString
* @param cls
* @return
*/
public static <T> T getData(String jsonString, Class<T> cls) { T t = null;
try {
t = JSON.parseObject(jsonString, cls);
} catch (Exception e) {
// TODO: handle exception
}
return t;
}
/**
* 使用fastjson进行解析 List<Person>
} * * @param <T> * @param jsonString * @param cls * @return */ public static <T> List<T> getDatas(String jsonString, Class<T> cls) { List<T> list = new ArrayList<T>(); try { list = JSON.parseArray(jsonString, cls); } catch (Exception e) { } return list; } public static List<Map<String, Object>> listKeyMaps(String jsonString) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); try { list = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() { }); } catch (Exception e) { // TODO: handle exception } return list; }
安卓下通常采用以下几种方式解析json数据
fastjson在线解析 第三篇
安卓下通常采用以下几种方式解析json数据:
----------------------------------------------- 1.org.json包(已经集成到android.jar中了) 2.google提供的gson库 3.阿里巴巴的
fastjson库 4.json-lib ---------------------------------------------- 服务器端一
般采用json-lib包来构建/解析json,但由于此方法需要导入很多依赖包,所以不建议在
android设备上使用。下面重点介绍org.json以及gson解析json数据的方式(json-lib
使用参照:JSON快速入门):
-------------------------------------------------------------------------------
----------- 首先来看四种典型的json数据: 1.bean对象:
?
1 {"age":20,"id":1,"job":"程序员","name":"张三"}
2.List集合:
?
[{"age":20,"id":1,"job":"程序员","name":"张三"},{"age":22,"id":2,"job":"经理","name"1 ","name":"小巩"},{"age":21,"id":6,"job":"程序员","name":"李卫"}]
3.List安卓下通常采用以下几种方式解析json数据: -----------------------------------------------
1.org.json包(已经集成到android.jar中了) 2.google提供的gson库 3.阿里巴巴的
fastjson库 4.json-lib ---------------------------------------------- 服务器端一
般采用json-lib包来构建/解析json,但由于此方法需要导入很多依赖包,所以不建议在
android设备上使用。下面重点介绍org.json以及gson解析json数据的方式(json-lib
使用参照:JSON快速入门):
-------------------------------------------------------------------------------
----------- 首先来看四种典型的json数据: 1.bean对象:
?
1 {"age":20,"id":1,"job":"程序员","name":"张三"}
2.List集合:
?
[{"age":20,"id":1,"job":"程序员","name":"张三"},{"age":22,"id":2,"job":"经理","name"1 ","name":"小巩"},{"age":21,"id":6,"job":"程序员","name":"李卫"}]
3.List
.
1
2
3
4
5
6
7
8
9
10 /** * 解析第一种格式的json数据: */ public static Person json2Person(String json) { if(json==null || json.trim().length() == 0) { return null; } Person p = null;
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 try { p = new Person(); JSONObject jsonObj = new JSONObject(json); p.setId(jsonObj.getInt("id")); p.setName(jsonObj.getString("name")); p.setJob(jsonObj.getString("job")); p.setAge(jsonObj.getInt("age")); } catch (JSONException e) { e.printStackTrace(); } return p; } /** * 解析第2种格式的json数据: */ public static List<person> json2Persons(String json) { if(json==null || json.trim().length() == 0) { return null; } List<person> list = null; Person p = null; try { list = new ArrayList<person>(); JSONArray jsonArr = new JSONArray(json); for(int i = 0 ; i < jsonArr.length();i++) { JSONObject jo = jsonArr.getJSONObject(i); p = new Person(); p.setId(jo.getInt("id")); p.setAge(jo.getInt("age")); p.setJob(jo.getString("job")); p.setName(jo.getString("name")); list.add(p); p = null; } } catch (JSONException e) {
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 e.printStackTrace(); } return list; } /** * 解析第3种格式的json数据: */ public static List<string> json2Names(String json) { if(json==null || json.trim().length() == 0) { return null; } List<string> names = null; try { names = new ArrayList<string>(); JSONArray jsonArr = new JSONArray(json); for(int i = 0; i < jsonArr.length(); i++) { names.add(jsonArr.getString(i)); } } catch (Exception e) { e.printStackTrace(); } return names; } /** * 解析第4种格式的json数据: */ public static List<map<string,string>> json2NameJobs(String json) { if(json==null || json.trim().length() == 0) { return null; } List<map<string,string>> namejobs = null; Map<string,string> map = null; try { namejobs = new ArrayList<map<string,string>>(); JSONArray jsonArr = new JSONArray(json); for(int i = 0; i < jsonArr.length(); i++)
100 101 102 103 104 105 106 107 108 109 110 111 { map = new HashMap<string,string>(); map.put("name",jsonArr.getJSONObject(i).getString("name")); map.put("job",jsonArr.getJSONObject(i).getString("job")); namejobs.add(map); map = null; } } catch (Exception e) { e.printStackTrace(); } return namejobs; }</string,string></map<string,string></string,string></map<string