SpringMVC篇—一篇文章带你彻底玩转JSON!

什么是JSON?

一、定义和使用规范
(1)定义

(2)规范

二、编程语言和JSON的转换关系(重要)
左边是JSON转其他编程语言,右边是编程语言转JSON

(1)JS和JSON之间的转换

也可以用这种方式将字符串转换成对象(注意: 一般JSON都是用双引号,外面一定要用单引号,内外的引号不能相同)

(2)转换的结果
①JSON字符串

②转换成JS对象(区别于JSON,是可以展开的)

三、JS和JSON的区别

对JSON的补充:
1、采用完全独立于编程语言的文本格式来存储和表示数据
2、简洁和清晰的层次结构使得JSON成为理想的数据交换语言
3、易于人阅读和编写,同时也易于机器解析和生成,并有效提升网络传输效率

JSON解析工具Jackson使用

一、使用这个工具首先要导包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.14.2</version>
</dependency>

二、编写实体类 

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}

三、编写控制类

@Controller
public class UserController {

    @RequestMapping("/test01")
    @ResponseBody //这个注解作用就是标记这个方法不会走视图解析器,直接将最后的字符串进行返回,当然也可以在类上直接用@RestController,标记该类不走视图解析器
    public String json01() throws JsonProcessingException {

        //1、创建User对象
        User user = new User(1,"张三",66);

        //2、创建ObjectMapper对象,用来将值转化成字符串(常用)
        ObjectMapper mapper = new ObjectMapper();

        //3、调用writeValueAsString方法,将要转换的对象放进去即可
        String str = mapper.writeValueAsString(user);
        //2、直接将对象返回
        return str;
    }
}

就能实现将对象转化成json

四、优化,解决json乱码问题(死代码,拿来即用)
直接在springmvc-servlet.xml核心配置文件中配置即可

<!--    配置annotation-driven,帮我们节省了配置处理器映射器HandlerMapping和处理器适配器HandlerAdapter-->
<mvc:annotation-driven>
    <!--        配置JSON解决乱码问题,死代码,以后直接用就行-->
    <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解析工具fastJson使用

一、导包

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.24</version>
</dependency>

二、使用方法


@RequestMapping("/test02")
@ResponseBody
public String json02(){

    List<User> userList = new ArrayList<>();
    User user = new User(1,"颤三",2);
    userList.add(user);
    //将对象转化成JSON字符串
    String s1 = JSON.toJSONString(user);
    //将集合转化成字符串
    String s2 = JSON.toJSONString(userList);

    //将JSON解析成对象
    User user1 = JSON.parseObject(s1, User.class);
    //注意,这个解析工具里面有很多类似的方法,我们可以直接测试使用

}

至此,你已经掌握了关于JSON的基本知识,将来的开发工作中,数据的交换大多数时候都是通过ISON字符串进行的,所以有必要熟练的掌握这个技术点。后续会持续更新,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值