JSON
* JavaScript Object Notation
* JS对象标记,是js的原生内容
* 一种与语言无关的数据交换的格式
json有两种格式:
* 对象格式:{"key1":obj,"key2":obj,"key3":obj...}
* 数组/集合格式:[obj,obj,obj...]
JSON 数据的书写格式是:"键"/值对
* 键:必须包在双引号中,后面是一个冒号,然后是值
* 值:值可以取以下值
* 数字(整数或浮点数)
* 字符串(在双引号中)
* 逻辑值(true 或 false)
* 数组(在方括号中)
* 对象(在花括号中,花括号外没有引号,花括号外有引号的叫符合Json语法的JavaScript字符串)
* null
js中取出json对象的值
* 对象格式取值
* var j={"name":"刘亦菲","age":"25","gender":"女"};
* var age=j.age;
* 数组格式取值
* var j=[{"name":"刘亦菲","age":"25","gender":"女"},{"name":"林允儿","age":"23","gender":"女"}];
* var v=j[0].name;
java对象转换成json格式字符串
* jsonlib
* Gson
* fastjson
* java对象转json串时需要考虑排除死循环出现的可能
Json字符串与JS对象互转
* Json字符串------>Json对象
* 第一种:
var obj = '{"firstName":"John","lastName":"Doe"}';
var jsVar = eval("(" + obj + ")");
alert(jsVar.firstName);
* 第二种:
var obj = '{"firstName":"John","lastName":"Doe"}';
var jsVar = JSON.parse(obj);
alert(jsVar.firstName);
* Json对象------>Json字符串
var obj={"firstName":"John","lastName":"Doe"};
var s=JSON.stringify(obj);//序列化对象,原本是一个对象,变成了string
springmvc中的Json交互
* ajax可以发送json字符串到后台
* 后端使用@RequestBody将请求转换成json数据
* @RequestBody 用于将请求中的json参数封装到形参中
* @ResponseBody 用于将返回的数据处理成json再返回
ajax模拟发送json字符串到后台
var params = '{"id":1,"name":"测试商品","price":99.9,"detail":"测试商品描述","pic":"1.jpg"}';
$.ajax({
url:"${pageContext.request.contextPath }/json.action",
data:params,
contentType:"application/json;charset=UTF-8",
type:"post",
dataType:"json",
success:function(data){
}
});
* 注意:
* 通过ajax发送json字符串不能使用$.post && $.get
* 因为这两种方式没有发送数据格式,只有返回数据格式,把params放在data处报错
* 上面例子中的params是一个json字符串,里面key用双引号,外面用单引号,这是json规定,否则报错
002-EE-0011-json
最新推荐文章于 2024-06-10 10:36:39 发布