扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
什么是JSON?
十年的天山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整天山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“天山网站设计”,“天山网站推广”以来,每个客户项目都认真落实执行。JSON(JavaScript Object Notation:JS对象标记)是一种轻量级的数据交换格式。使用广泛,采用完全独立于编程语言的文本格式来存储和表示数据。简洁、清晰、易于阅读、易于机器解析和生成、可以提升网络传输效率。
Controller返回JSON数据
使用Jackson(一种json解析工具)
步骤:
1、导入jar包
com.fasterxml.jackson.core jackson-databind2.9.6
2、编写web.xml
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc-servlet.xml 1 springmvc / encoding org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encoding /*
3、编写springmvc-servlet.xml
4、编写实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private int age;
private String sex;
}
5、编写一个Controller
@Controller
public class UserController {
@RequestMapping(value="/j1",produces = "application/json;charset=utf-8") //解决JSON乱码问题
@ResponseBody //它就不会走视图解析器,会直接返回一个字符串
public String json1() throws JsonProcessingException {
User user = new User("张三",3,"男");
//把它转换为JSON对象(字符串)
ObjectMapper mapper = new ObjectMapper();
String string = mapper.writeValueAsString(user);
return string;
}
}
乱码统一解决
使用 produces = "application/json;charset=utf-8" 来解决json乱码问题比较麻烦,如果项目中有很多请求,那么每个请求都要添加produces属性。
可以通过Spring配置统一指定,这样就不用每次都去处理了。
@Controller 走视图解析器
@RestController 不走视图解析器
@Controller + @ResponseBody = @RestController
1、把user对象转换为JSON对象的显示结果:
{"name":"张三","age":3,"sex":"男"}
2、把集合转换为JSON对象
@RequestMapping(value="/j2")
@ResponseBody //它就不会走视图解析器,会直接返回一个字符串
public String json2() throws JsonProcessingException {
ListuserList = new ArrayList();
User user1 = new User("张三",3,"男");
User user2 = new User("李四",4,"男");
User user3 = new User("王五",5,"男");
userList.add(user1);
userList.add(user2);
userList.add(user3);
//把它转换为JSON对象(字符串)
ObjectMapper mapper = new ObjectMapper();
String string = mapper.writeValueAsString(userList);
return string;
}
显示结果:
[{"name":"张三","age":3,"sex":"男"},{"name":"李四","age":4,"sex":"男"},{"name":"王五","age":5,"sex":"男"}]
3、把时间转换为JSON对象
@RequestMapping(value="/j3")
@ResponseBody //它就不会走视图解析器,会直接返回一个字符串
public String json3() throws JsonProcessingException {
Date date = new Date();
ObjectMapper mapper = new ObjectMapper();
//使用ObjectMapper解析时间后的默认格式为:Timestamp(时间戳)
String string = mapper.writeValueAsString(date);
return string;
}
FastJson
fastjson.jar是阿里开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。实现json的转换方法很多,最后的实现结果都是一样的。
步骤:
1、导入依赖
com.alibaba fastjson1.2.60
fastjson中三个主要的类:
①JSONObject代表json对象
②JSONArray代表json对象数组
③JSON代表JSONObject和JSONArray的转化
@RequestMapping(value="/j4")
@ResponseBody //它就不会走视图解析器,会直接返回一个字符串
public void json4() throws JsonProcessingException {
ListuserList = new ArrayList();
User user1 = new User("张三",3,"男");
User user2 = new User("李四",4,"男");
User user3 = new User("王五",5,"男");
userList.add(user1);
userList.add(user2);
userList.add(user3);
//Java对象转JSON字符串
String str1 = JSON.toJSONString(userList);
String str2 = JSON.toJSONString(user1);
System.out.println(str1);
System.out.println(str2);
//JSON字符串转Java对象
User java_user = JSON.parseObject(str2,User.class);
System.out.println(java_user);
//Java对象转JSON对象
JSONObject jsonObject1 = (JSONObject)JSON.toJSON(user2);
System.out.println(jsonObject1);
//JSON对象转Java对象
User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
System.out.println(to_java_user);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流