JSON-创新互联

什么是JSON?

十年的天山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整天山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“天山网站设计”,“天山网站推广”以来,每个客户项目都认真落实执行。

JSON(JavaScript Object Notation:JS对象标记)是一种轻量级的数据交换格式。使用广泛,采用完全独立于编程语言的文本格式来存储和表示数据。简洁、清晰、易于阅读、易于机器解析和生成、可以提升网络传输效率。

Controller返回JSON数据

使用Jackson(一种json解析工具)

步骤:

1、导入jar包

com.fasterxml.jackson.corejackson-databind2.9.6

2、编写web.xml

springmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:springmvc-servlet.xml1springmvc/encodingorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8encoding/*

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.alibabafastjson1.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元起,快前往官网查看详情吧


本文标题:JSON-创新互联
地址分享:http://csdahua.cn/article/dsijie.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流