一、JSON和JS字符串的区别
首先JSON对象的数据格式满足三个条件
1、花括号{}
2、数据以键:值的形式出现 (键大多是字符串如"ID",值可以是很多例如字符串,数值,甚至JSON对象)
例如
{
"ID":111,
"sex":"女"
"JSON对象":{"姓名":"Hansey","性别":"男"}
}
JS字符串和和JSON字符串区别就是JS字符串使用单引号或者双引号引起来
例如
var JsString = "{
"ID":111,
"sex":"女"
"JSON对象":{"姓名":"Hansey","性别":"男"}
}"
单引号类似
二、JSON对象和JS字符串之间的转换
JSON对象转JS字符串 JSON.parse(JSON对象) 前端使用
JS字符串转JSON对象 JSON.stringify(JS字符串) 例如利用layui时获取表格中的数据
var js = table.cache.表名 (例如 var userinfo = table.cache.user)
以json格式传到后台
$.ajax({
url: XXXXX,
data: {'users': JSON.stringify(userinfo)}, dataTye: "json",//期待服务器传回的的格式 contentType: 'application/json'//传给服务器的格式
})
ps:另外在使用ajax提交表单时 可以先序列化再提交 例如
将表单数据序列化 一般就是将表单数据序列化就是转化为a=1&ad=1&wd=123这种形式
一种是 var data1 = $(‘#form1’).serializeObject() 或者是 $(‘#form1’).serialize() 直接加到url中
url: "${ctx${}?" + data1,
三、JSON对象或者String字符串(我理解为JS字符串)传到后台后的处理
JSON对象就直接接收就好 (SpringMVC)以名字接收 或者
string 字符串转list(这里就是用于前台是一串字符串)
String str = "";
List<T> list = JSONObject.parseArray(str,T.class);
List<UserBerif> list = JSONObject.parseArray(str,UserBerif.class)
四、List和JSONArray(com.alibaba.fastjson)转换
List转JSONArray
List<T> list = new ArrayList<>();
JSONArray array = JSONArray.parseArray(JSON.toJSONString(list))
!!!!可以这样子记住 JSON.parse()都是从JSON转为其他的 例如
JSONArray转List(这里的List可以对应每一个对象) 这里的array是JSON字符串数组 县这里JSONArray转List也是将JSON转为Sring 然后将其数组化
JSONArray array = new JSONArray();
List<EventColAttr> list = JSONObject.parseArray(array.toJSONString(), EventColAttr.class);
五、JSON和Map可以使用JSONObject(com.alibaba.fastjson)转换
Map<String,String> maps = new HashMap<>();
Maps.put(“”,user.getName);
Maps.put();
//1、JSONObject JSONObject mapObject=JSONObject.fromObject(map); System.out.println("mapObject"+mapObject.toString()); //2、JSONArray JSONArray mapArray=JSONArray.fromObject(map); System.out.println("mapArray:"+mapArray.toString());
JSON与对象互转可以参考https://www.cnblogs.com/free-dom/p/5801866.html