JSON
1 概念:JavaScript Object Notation JavaScript对象表示法
var p={"name":"张三","age":23,"gender":"男"};
json现在多用于存储和交换文本信息的语法
进行数据的传输
json比xml更小、更快、更易解析
2 语法:
1 基本规则
数据在名称/值对中:json数据是由键值对构成的
* 键用引号引起来,也可以不使用
* 值的取值类型
数字(正数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
数据由逗号分隔:多个键值对由逗号分隔
花括号保存对象:使用{}定义json格式
方括号保存数组:[]
2 获取数据:
1 json对象.键名
2 json对象["键名"]
3 数组对象[索引]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
//1 定义基本格式
var person = {
"name" : "zhangsan",
"age" : "23",
"gender" : "true"
};
var name=person.name;
var name=person["name"];
//alert(name);
//alert(person);
//2 嵌套格式 {}--->[]
var people = {
"people" : [ {
"name" : "zhangsan",
"age" : "23",
"gender" : "true"
}, {
"name" : "lisi",
"age" : "24",
"gender" : "true"
}, {
"name" : "wangwu",
"age" : "25",
"gender" : "true"
} ]
};
var name=people.people[2].name;
//alert(name);
//alert(people);
//2 嵌套格式 []--->{}
var peo=[{
"name" : "zhangsan",
"age" : "23",
"gender" : "true"
}, {
"name" : "lisi",
"age" : "24",
"gender" : "true"
}, {
"name" : "wangwu",
"age" : "25",
"gender" : "true"
} ];
var name=peo[1].name;
alert(name);
//alert(peo);
</script>
</head>
<body>
</body>
</html>
3 JSON和Java对象的相互转换
* JSON解析器
常见的解析器:Jsonlib,Gson,fastjson,jackson
1 JSON转为Java对象
1 使用步骤
1 导入jackson的相关jar包
2 创建Jackson核心对象 ObjectMapper
3 调用ObjectMapper的相关方法进行转换
readValue(json字符串数据,Class)
2 Java对象转换JSON
1 使用步骤
1 导入jackson的相关jar包
2 创建Jackson核心对象 ObjectMapper
3 调用ObjectMapper的相关方法进行转换
2 注解:
1 @JsonIgnore:排除属性
2 @JsonFormat:属性值的格式化
3 复杂Java对象转换
1 List:数组
2 Map:对象格式一致
package test; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import domain.person; public class Jackson { //java对象转换为json字符串 @Test public void test1() throws JsonProcessingException { //创建person对象 person p=new person(); p.setName("zhangsan"); p.setAge(23); p.setGender("男"); //创建Jackson的核心对象ObjectMapper ObjectMapper mapper=new ObjectMapper(); //转换 /* 转换方法: writevalue(参数1,obj) 参数1: File:将obj对象转换为json字符串,并保存到指定的文件中 Writer:将obj对象转换为json字符串,并将json数据填充到字符输出流中 OutputStream:将obj对象转换为json字符串,并将json数据填充到字节输出流中 writeValueAsString(obj):将对象转换为json字符串 */ String s=mapper.writeValueAsString(p); //System.out.println(s); } @Test public void test2() throws JsonProcessingException { //创建person对象 person p=new person(); p.setName("zhangsan"); p.setAge(23); p.setGender("男"); person p1=new person(); p1.setName("lisi"); p1.setAge(24); p1.setGender("男"); person p2=new person(); p2.setName("wangwu"); p2.setAge(25); p2.setGender("男"); List<person> peo=new ArrayList<person>(); peo.add(p); peo.add(p1); peo.add(p2); //创建Jackson的核心对象ObjectMapper ObjectMapper mapper=new ObjectMapper(); //转换 String s=mapper.writeValueAsString(peo); System.out.println(s); } }

浙公网安备 33010602011771号