前端 JSON

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;
    }
}

版权声明:本文为qq_41315339原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。