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

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

JSON

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

json的语法

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

Json应用

Json与XML的对比

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

json-lib

  1. 是什么?
  • 它可以把javabean转换成json串
  1. jar包
  1. 核心类
  • 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"));
}
}

将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"
使用Maven进行搭建依赖
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.37</version>
 </dependency>

目录
相关文章
|
1月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
38 0
|
8月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
70 0
|
7月前
|
存储 JSON 前端开发
SpringMVC之JSON返回&异常处理机制(带你学习新的SpringMVC武功秘籍)
SpringMVC之JSON返回&异常处理机制(带你学习新的SpringMVC武功秘籍)
99 0
|
1月前
|
XML JSON 前端开发
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
65 1
|
1月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
112 0
|
15天前
|
存储 JSON JavaScript
认识学习JSON
认识学习JSON
|
1月前
|
XML JSON JavaScript
|
7月前
|
JSON 前端开发 API
从零开始学习React-解析json、渲染数据(六)
从零开始学习React-解析json、渲染数据(六)
59 0
|
11天前
|
存储 JSON JavaScript
【chat-gpt问答记录】python将数据存为json格式和yaml格式
【chat-gpt问答记录】python将数据存为json格式和yaml格式
26 1
|
17天前
|
存储 JSON JavaScript
使用Python处理JSON格式数据
使用Python处理JSON格式数据