一、JSON概念
概念:JavaScript Object Notation。JavaScript对象表示法
由于其语法简单,层次结构鲜明,现多用于作为数据载体
二、JSON基础语法
定义:
var 变量名 = {"key1";value1 "key2";value2 ...... };
示例:
var json = {"name";"zhangsan", "age";23, "addr";["北京","上海","西安"] };
获取数据:
变量名.key json.name
value的数据类型为:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
null
代码示例:
<script> var json = { "name": "zhangsan", "age": 23, "addr": ["北京", "上海", "西安"] }; //获取值 alert(json.name); </script>
浏览器弹出:
三、JSON数据和Java对象转换
请求数据:JSON字符串转为Java对象
响应数据:Java对象转为JSON字符串
Fastjson是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库,是目前Java语言中最快的JSON库,可以实现Java对象和JSON字符串的相互转换。
使用:
1、导入坐标
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
2、Java对象转JSON
String jsonStr = JSON.toJSONString(obj);
3、JSON字符串转为Java对象
User user = JSON.parseObject(jsonStr,User.class);
代码示例:
User代码:
public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer 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; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
FastJsonDemo代码:
import com.alibaba.fastjson.JSON; public class FastJsonDemo { public static void main(String[] args) { //1.将java对象转为JSON字符串 User user = new User(); user.setId(1); user.setUsername("zhangsan"); user.setPassword("123"); String jsonString = JSON.toJSONString(user); System.out.println(jsonString); //2.将JSON字符串转为java对象 User u = JSON.parseObject("{\"id\":1,\"password\":\"123\",\"username\":\"zhangsan\"}", User.class); System.out.println(u); } }
控制台执行结果: