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
}
}