JSON学习笔记

0 阅读1分钟

JSON语法

var 变量名='{"key":value,"key":value,...}';

JSON串的键要求必须使用双引号括起来,而值根据要表示的数据类型确定。

value的数据类型如下:

  • 数字(整数或浮点)

  • 字符串(使用双引号括起来)

  • 逻辑值(true或false)

  • 数组(在方括号中)

  • 对象(在花括号中)

  • Null

    var 变量名='{"key":value,"key":value,...}';

JSON串和Java对象互相转化

如果复杂的数据会以json提交给后端,而后端如果需要响应一些复杂的数据时,也需要以json格式将数据响应回给浏览器。

  • 请求数据:JSON字符串转为Java对象
  • 响应数据:Java对象转为JSON字符串

Fastjson

Java语言编写的高性能功能完善的JSON类库,可以实现JSON字符串的相互转换。

需要依赖包 fastjson-1.2.62.jar(其他版本也行)

Java对象转.JSON

String jsonStr=JSON.toJSONString(obj);

JSON字符串转Java对象

Model obj=JSON.parseObject(jsonStr,Model.class)

演示

User.java实体类代码

package com.json;

  


public class User {

private String name;

private int age;

  


// 必须有无参构造(Fastjson需要)

public User() {}

  


// getter、setter

public String getName() { return name; }

public void setName(String name) { this.name = name; }

  


public int getAge() { return age; }

public void setAge(int age) { this.age = age; }

}

json.java

package com.json;

import com.alibaba.fastjson.JSON;

public class json {

public static void main(String[] args) {

// ========== 1. Java对象 → JSON字符串 ==========

User user = new User();

user.setName("张三");

user.setAge(20);


String json = JSON.toJSONString(user); // 核心行1

System.out.println(json);

// 输出:{"age":20,"name":"张三"}


// ========== 2. JSON字符串 → Java对象 ==========

String jsonStr = "{\"age\":25,\"name\":\"李四\"}";


User user2 = JSON.parseObject(jsonStr, User.class); // 核心行2

System.out.println(user2.getName()); // 李四

System.out.println(user2.getAge()); // 25

}
}