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

浙公网安备 33010602011771号