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;

    }
View Code
复制代码

解决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>
View Code
复制代码

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);
View Code
复制代码

json相关的包

复制代码
      <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.2.2</version>
        </dependency>
View Code
复制代码

 

 方法2: FastJson  - alibaba

相关的包

复制代码
       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.61</version>
        </dependency>
View Code
复制代码

 相关使用

复制代码
        //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);
    
复制代码

 

posted @   磕伴  阅读(123)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示