JSON概念、基础语法及数据和对象转换
原创
©著作权归作者所有:来自51CTO博客作者夏志121的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
一、JSON概念
二、JSON基础语法
三、JSON数据和Java对象转换
一、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);
}
}
控制台执行结果: