json
json是js对象标记语言 轻量级数据交换格式 是js的一个字符串表示法
json中一切都是对象
- 对象表示为键值对
- 数据用逗号分隔
- 花括号保存对象
- 方括号保存数组
js var user= {name:“fanshuai”,age:21,sex:男};
fastjson jackson(阿里的包) json的工具包
注解实现 @ResponseBody 将服务端返回的对象转换成json对象 返回到页面
@ RequestBody 接收前端传来的接送数据 把json数据自从封装到pojo中
@ResponseBody
public String json1() throsws JsonProcessingException{
//需要一个jackson的对象映射器 使用它可以直接将对象转换成json字符串
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user = new User("一号",1,男);
sout(user);
//将java对象转换为json字符串:
String str = mapper.writeValueAsString(user);
sout(str);
return str;//注解的作用
}
创建json对象
var gareen = {"name":"盖伦","hp":616};
值可以是任意javascript数据类型,字符串,布尔,数字 ,数组甚至是对象
通过.来访问json的属性
document.write("英雄名称: " + gareen.name + "<``br``>");
document.write(); 页面加载时写入
console.log(gareen); 控制台输出
alert(); //弹窗
创建json数组
通过方括号[] 创建JSON 数组
<script>
var heros=
[
{"name":"盖伦","hp":616},
{"name":"提莫","hp":313},
{"name":"死歌","hp":432},
{"name":"火女","hp":389}
]
document.write("JSON数组大小"+heros.length);
</script>
访问json数组
<script>
var heros=
[
{"name":"盖伦","hp":616},
{"name":"提莫","hp":313},
{"name":"死哥","hp":432},
{"name":"火女","hp":389}
]
document.write( "第4个英雄是:" + heros[3].name);
</script>
json对象转换
json和javascript
JavaScript对象 分内置对象(Number,String,Array,Date,Math)和自定义对象
JSON就是自定义对象,只不过是以JSON这样的数据组织方式表达出来
所以不存在JSON对象与JavaScript对象的转换问题
json字符串转化成js对象使用JSON.parse()方法
<script>
var s1 = '{"name":"盖伦","hp":"616"}';
document.write("这是一个JSON格式的字符串:" + s1);
var gareen = JSON.parse(s1);
document.write("这是一个JSON对象: " + gareen);
</script>
js转化为json字符串JSON.stringify
<script>
var hero = {"name":"盖伦","hp":"616"};
document.write("这是一个json 对象:"+ hero);
var heroString = JSON.stringify(hero)
document.write("这是一个json 字符串:"+ heroString );
</script>
jsonUtil
public class JsonUtils {
//重写getjson方法 自定义时间格式
public static String getJson(Object object){
return getJson(object,"yyyy-MM-dd HH:mm:ss");
}
public static String getJson(Object object,String dateFormat){
ObjectMapper mapper = new ObjectMapper();
//1.如何让他不返回时间戳!所以我们要关闭它的时间戳功能
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
//2.时间格式化问题!自定日期格式对象;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
//3.让mapper指定时间日期格式为simpleDateFormat;
mapper.setDateFormat(sdf);
try {
return mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}