JSON
轻量的数据交换格式
前端
JavaScript对象转换成JSON字符串 JSON.stringify()
<script type="text/javascript"> var user={ name:"李白", age :3, sex:"男" }; var json=JSON.stringify(user) // console.log(user) console.log(json) </script>
JSON字符串转换成JavaScript对象 JSON.parse(str)
var obj=JSON.parse(json)
console.log(obj)
后端
返回单个对象
@RequestMapping("/j1") @ResponseBody //这个不会走视图解析器,返回一个字符串 也可以在类上面加@RestController public String text1(){ //封装数据 User user = new User("李白",18,"男"); ObjectMapper objectMapper = new ObjectMapper(); String str = null; try { str = objectMapper.writeValueAsString(user); } catch (JsonProcessingException e) { e.printStackTrace(); } // model.addAttribute("msg",name); // System.out.println(name); return str; }
返回多个对象

@RequestMapping("/j2") @ResponseBody //这个不会走视图解析器,返回一个字符串 public String text2(){ //封装数据 ArrayList<User> userList = new ArrayList<>(); User user1 = new User("李白1",18,"男"); User user2 = new User("李白2",18,"男"); User user3 = new User("李白3",18,"男"); User user4= new User("李白4",18,"男"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); ObjectMapper objectMapper = new ObjectMapper(); String str = null; try { str = objectMapper.writeValueAsString(userList); } catch (JsonProcessingException e) { e.printStackTrace(); } return str; }
解决JSON乱码问题 (在spring配置中)

<!-- 解决JSON乱码--> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
JSON自定义工具类(包括Date) 需要导入json相关的包

import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import java.text.SimpleDateFormat; public class JsonUtil { public static String getJson(Object object, String dateDormat){ ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false); SimpleDateFormat sdf = new SimpleDateFormat(dateDormat); objectMapper.setDateFormat(sdf); try { return objectMapper.writeValueAsString(object); } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } public static String getJson(Object object){ //Date return getJson(object,"yyyy-MM-dd HH:mm:ss"); } } //******************调用*********** return JsonUtil.getJson(user); return JsonUtil.getJson(userList); return JsonUtil.getJson(date);
json相关的包

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.2.2</version> </dependency>
方法2: FastJson - alibaba
相关的包

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.61</version> </dependency>
相关使用
//JAVA对象转JASON字符串 String str2=JSON.toJSONString(user1); //JSON 子字符串转JAVA对象 User u=JSON.parseObject(str2,User.class); //JAVA对象转JSON对象 JSONObject o = (JSONObject)JSON.toJSON(user1); //JSON对象转JAVA对象 User t = JSON.toJavaObject(o, User.class);
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术