支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum) 零依赖(没有依赖其它任何类库除了JDK)
String json = "{\"name\":\"chenggang\",\"age\":24}";
String arrayAyy = "[[\'马云',50],null,[\'马化腾',30]]";
JSon数组转集合
import com.alibaba.fastjson.JSONArray;
public class MaterialInController {
@PostMapping("/query")
public AssembleJSON getList(ReceiveParameterModel receiveParameterModel) {
String querystr = receiveParameterModel.getQuerystr();
List<JsonModel> parseArray = JSONArray.parseArray(querystr, JsonModel.class);
receiveParameterModel.setQuery(parseArray);
return AssembleJSON.SUCCESS(service.getList(receiveParameterModel));
}
}
import com.alibaba.fastjson.JSONArray;
public class ReceiveParameterModel {
private Integer page;
private Integer rows;
private String sort;
private String order;
private List<JsonModel> query;
private String querystr;
public List<JsonModel> getQuery() {
if (query == null && querystr != null) {
try {
query = JSONArray.parseArray(querystr, JsonModel.class);
} catch (Exception e) {
throw new CntenException(query, "数据转换异常", e.getStackTrace().toString(), e);
}
}
return query;
}
public void setQuery(List<JsonModel> query) {
this.query = query;
}
}
public class JsonModel {
private String name;
private String value;
private String type;
}
import com.github.pagehelper.PageInfo;
public class PageModel<T> {
private Integer total;
private List<T> rows;
public PageModel() {
}
public PageModel(Integer total, List<T> rows) {
this.total = total;
this.rows = rows;
}
public PageModel(List<T> list){
PageInfo<T> pageInfo = new PageInfo<T>(list);
Long tal = pageInfo.getTotal();
total= tal.intValue();
rows = pageInfo.getList();
}
}
public PageModel<HistoryMonitor> getList(ReceiveParameterModel receiveParameterModel) {
// TODO Auto-generated method stub
PageHelper.startPage(receiveParameterModel.getPage(), receiveParameterModel.getRows());
List<JsonModel> query = receiveParameterModel.getQuery();
Map<String,Object> map = new HashMap<>();
for (JsonModel jsonModel : query) {
if (jsonModel.getValue() != null && jsonModel.getValue() != "") {
map.put(jsonModel.getName(), jsonModel.getValue());
}
}
return new PageModel<>(mapper.getList(map));
}
字符串json对象转实体对象
Userinfo userInfo = JSON.parseObject(json, Userinfo.class);
System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"
+ userInfo.getAge());
实体对象转jsonObject
String userStr = userService.getUserByUserCode(userCode);
JSONObject userJsonObject = JSONObject.parseObject(userStr);
public String checkUser(JSONObject userJsonObject){
if(null == userJsonObject)
return String.valueOf(LoginConstant.LOGIN_USER_NOTEXIST_CODE);
Integer userState = userJsonObject.getInteger("state");
if(null != userJsonObject && null != userState){
if(LoginConstant.LOGIN_USER_STATE_INVALID == userState){
return LoginConstant.LOGIN_USER_INVALID_CODE;
}else if(LoginConstant.LOGIN_USER_STATE_LOCKED == userState){
return LoginConstant.LOGIN_USER_LOCKED_CODE;
}
}else{
return LoginConstant.LOGIN_USER_INVALID_CODE;
}
return userJsonObject.getString("userPass");
}
转json
//实体转json
Userinfo info = new Userinfo(name, age);
String str_json = JSON.toJSONString(info);
List<Userinfo> list = new ArrayList<Userinfo>();
//list转json
Userinfo userinfo1 = new Userinfo("lisi", 15);
Userinfo userinfo2 = new Userinfo("wangwu", 16);
list.add(userinfo1);
list.add(userinfo2);
String json = JSON.toJSONString(list, true);
//map转json
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "zhangsan");
map.put("age", 24);
map.put("sex", "男");
// map集合
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("name", "xiaohong");
temp.put("age", "23");
map.put("girlInfo", temp);
// list集合
List<String> list = new ArrayList<String>();
list.add("爬山");
list.add("骑车");
list.add("旅游");
map.put("hobby", list);
String jsonString = JSON.toJSONString(map);
前台传递json字符串
(function (window, $, undefined) {
var _Core = function () {
};
window.$Core = new _Core();
var _util = function () {
/*
* 序列化Form 返回数组对象
* @param {any} domid domid
*/
this.QueryFormSerializeArray = function (domid) {
var form = null;
if (typeof (domid) === "string")
from = $('#' + domid);
else
from = domid;
var p = from.serializeArray();
var s = $.map(p, function (n) {
var t = $("#" + n.name);
if (t.size() == 0)
t = from.find("*[textboxname='" + n.name + "']");
var query = {};
var s = $.trim(t.attr('data-query'));
if (s) {
if (s.substring(0, 1) != '{') {
s = '{' + s + '}';
}
query = (new Function('return ' + s))();
if (query.filed) {
query.name = query.filed;
//query.remove("filed");
}
}
//console.log(query);
return $.extend({}, n, query);
});
return s;
};
/**
* 序列化Form 返回字符串
* @param {string} domid
* @return {any} 序列化后的
*/
this.QueryFormSerializeString = function (domid) {
var s = this.QueryFormSerializeArray(domid);
var strpars = JSON.stringify(s);
return strpars;
};
};
$Core.util = new _util();
})(window, jQuery);
var v = $Core.util.QueryFormSerializeString('search_form');
paras.querystr = v;
$.parseJSON() 函数用于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象。
var cookieuser;
try {
cookieuser = $.parseJSON(cookieData);
} catch (e) {
//window.location.href = TIMEOUT_PATH;
return {};
}
JSON.parse()
方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。
var json = '{"result":true, "count":42}';
obj = JSON.parse(json);
console.log(obj.count);
// expected output: 42
console.log(obj.result);
// expected output: true
JSONReader
当读取json文件的时候,如果json文件巨大,比如json文件中有900万条数据,大小有300多M,就不可以一次把数据都读到内存再解析。
原文:https://blog.csdn.net/drlyee/article/details/43699427