前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >杨老师课堂之零基础学习JSON知识点

杨老师课堂之零基础学习JSON知识点

作者头像
杨校
发布2018-12-24 11:34:57
5560
发布2018-12-24 11:34:57
举报
文章被收录于专栏:Java技术分享圈Java技术分享圈

JSON

  1. json是什么
    • 它是js提供的一种数据交换格式!

json的语法

  • {}:是对象!
    • > 属性值:
    • > 属性名必须使用双引号括起来!单引不行!!!
  • null
  • 数值
  • 字符串
  • 数组
  • Boolean值: true/false

Json应用

Json与XML的对比

  • 可读性:XML胜出
  • 解析难度:JSON本身就是JS对象(主场作战),所以简单很多
  • 流行度:XML已经流行好多年,但在AJAX领域,JSON更受欢迎。

json-lib

  1. 是什么?
    • 它可以把javabean转换成json串
  2. jar包
  3. 核心类
    • JSONObject –> Map > toString(); > JSONObject map = JSONObject.fromObject(person):把对象转换成JSONObject对象
    • JSONArray –> List > toString() > JSONArray jsonArray = JSONArray.fromObject(list):把list转换成JSONArray对象

    演示代码: /** * 演示JSON-LIB小工具  */ public class Demo1 { /* * 当map来用 */ @Test public void fun1() { JSONObject map = new JSONObject(); map.put("name", "zhangSan"); map.put("age", 23); map.put("sex", "male"); String s = map.toString(); System.out.println(s); } /* * 当你已经有一个Person对象时,可以把Person转换成JSONObject对象 */ @Test public void fun2() { Person p = new Person("liSi", 32, "female"); // 把对象转换成JSONObject类型 JSONObject map = JSONObject.fromObject(p); System.out.println(map.toString()); } /** * JSONArray */ @Test public void fun3() { Person p1 = new Person("zhangSan", 23, "male"); Person p2 = new Person("liSi", 32, "female"); JSONArray list = new JSONArray(); list.add(p1); list.add(p2); System.out.println(list.toString()); } /** * 原来就有一个List,我们需要把List转换成JSONArray */ @Test public void fun4() { Person p1 = new Person("zhangSan", 23, "male"); Person p2 = new Person("liSi", 32, "female"); List<Person> list = new ArrayList<Person>(); list.add(p1); list.add(p2); System.out.println(JSONArray.fromObject(list).toString()); } }

  4. Fastjson是什么
    • 阿里巴巴公司开源的速度最快的Json和对象转换工具
    • fastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject, 使用fastjson要注意要转换的类必须有默认的无参构造方法。
  5. 导包
    1. com.alibaba.fasthson.JSON
  6. 举例
    1. 将对象类型转换成为字符串 User.java public class User { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 测试类 public class UserTest { @Test public void fun() { User user = new User(); user.setId(2); user.setUsername("rose"); user.setPassword("123"); // 使用JSON的 toJSONString 方法 传入对象 String jsonString = JSON.toJSONString(user); System.out.println(jsonString); } } 运行后结果: {"id":2,"password":"123","username":"rose"}
    2. 将集合类型转换成为字符串 依旧使用上面的User实体类 测试类: public class UserTest { @Test public void fun() { ArrayList<User> list = new ArrayList<User>(); // 第一个对象 User user = new User(); user.setId(2); user.setUsername("rose"); user.setPassword("123"); // 将第一个对象添加到集合中去 list.add(user); // 第二个对象 User user2 = new User(); user2.setId(12); user2.setUsername("jack"); user2.setPassword("1234"); // 将第二个对象添加到集合中去 list.add(user2); //list中此时有两个元素 String jsonString = JSON.toJSONString(list); System.out.println(jsonString); } } 运行后结果: [{"id":2,"password":"123","username":"rose"}, "id":12,"password":"1234","username":"jack"}]
      1. 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息

      测试类: public class UserTest { @Test public void fun() { // str是一个json的文本数据 ,“\”为 双引号的转移符号 String str = "{\"name\":\"rose\"}"; JSONObject jsonObject = JSON.parseObject(str); System.out.println(jsonObject.get("name")); } }

      1. 将Json文本数据转换为JavaBean数据 注意:这里的Json文本信息中的键的名称必须和JavaBean中的字段名称一样 键中没有的在这个JavaBean中就显示为null

      测试类 public class UserTest { @Test public void fun() { String str = "[ {\"username\":\"rose\",\"password\":\"321\"}", {\"username\":\"jerry\",\"password\":\"123\"}" ]; User user = JSON.parseObject(str, User.class); System.out.println(user.getUsername()+":"+user.getPassword()); } } 运行后的结果: rose:321

      1. 将JSON文本转换为JavaBean的集合;

      测试类 public class UserTest { @Test public void fun() { String str = "[{\"username\":\"rose\",\"password\":\"321\"}," + "{\"username\":\"jerry\",\"password\":\"123\"}]"; List<User> list = JSON.parseArray(str, User.class); for (User u : list) { System.out.println(u.getUsername()+":"+u.getPassword()); } } 运行后的结果: rose:321 jerry:123

      1. 将日期对象转换为字符串

      测试类 public class UserTest { @Test public void fun() { Date date = new Date(); System.out.println("date=" + date); String jsonString = JSON.toJSONString(date); System.out.println("--------------"); String dateFormat = JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd: hh:mm:ss"); System.out.println("dateFormat:"+dateFormat); } 运行后的结果: date=Wed Aug 22 19:08:06 CST 2018 <hr /> dateFormat:"2018-08-22: 07:08:06"


代码语言:javascript
复制
使用Maven进行搭建依赖
代码语言:javascript
复制
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.37</version>
 </dependency>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JSON
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档