JSON
1.概念:JavaScript Object Notation JavaScript的对象表示法
2.语法
1.基本规则
*数据在名称/值对中:json数据是由键值对构成的
* 键用引号(单双都行)引起了,也可以不使用引号
*值可以取的类型:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true或false)
4.数组(在方括号中){“person”,[“tom”,“jack”]}
5.对象(在花括号中)
6.null
*数据有逗号分隔:多个键值对由逗号分隔
*花括号中保存对象:使用{}定义json格式
*方括号保存数组
2.获取数据
- json对象.键名
- json对象[“键名”]
- 数组对象[索引]
- 遍历
代码样例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//1.基本格式
var p={name:"张三",sex:"男"}
console.log(p.name)
//2.嵌套格式
var p1=[
{name:"张三",sex:"男"},
{name:"李四",sex:"男"},
{name:"王五",sex:"女"}
]
console.log(p1[1].sex)
var p2={person:[{name:"张三",sex:"男"},
{name:"李四",sex:"男"},
{name:"王五",sex:"女"}]
}
console.log(p2.person[2].name)
console.log("json对象的获取")
console.log("p")
for(var x in p)
{
console.log(x+" "+p[x])
}
console.log("p1")
for(var i=0;i<p1.length;i++)
{
var x=p1[i];
for(var y in x)
{
console.log(y+" "+x[y])
}
}
for(var x in p2)
{
var y=p2[x];
for(var i=0;i<y.length;i++)
{
for(var z in y[i])
{
console.log(z+' '+y[i][z])
}
}
}
</script>
</head>
<body>
</body>
</html>
java对象转json
使用步骤
- 导入Jackson相关的jar包
- 创建Jackson的核心对象ObjectMapper
- 调用ObjectMapper的相关方法进行转换
1.转换方法
writeValue(参数1,obj)
参数1:
File 将OBJ对象转换为json字符串 并保存到指定文件中
writer 将OBJ对象转换为json字符串 并将json数据填充到字符输出流中
OutputStream 将OBJ对象转换为json字符串 并将json数据填充到字节输出流中
writeValueAsString(obj):将对象转为json字符串
2.注解
1.@JsonIgnore:排除属性(即省略)
2.@JsonFormat: 属性值格式化
3.复杂java对象转换
1.List :数组
2.Map: 与对象格式一致
json对象转java
使用步骤
- 导入Jackson相关的jar包
- 创建Jackson的核心对象ObjectMapper
- 调用ObjectMapper的相关方法进行转换
Mapper.readValue(json字符串数据,Class)
相关代码展示
package com.blb.jsom;
import org.codehaus.jackson.map.ObjectMapper;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
public class json1 {
public static void main(String[] args) throws IOException {
person p=new person();
p.setName("张三");
p.setAge(35);
p.setWork("项目经理");
p.setBirthday(new Date());
ObjectMapper mapper = new ObjectMapper();
String s = mapper.writeValueAsString(p);
System.out.println(s);
mapper.writeValue(new BufferedWriter(new FileWriter("lib/a.txt")),p);
person person = mapper.readValue(s, person.class);
System.out.println(person);
}
}
package com.blb.jsom;
import org.codehaus.jackson.annotate.JsonIgnore;
import java.util.Date;
public class person {
private String name;
private int age;
private String work;
@JsonIgnore
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
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;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
@Override
public String toString() {
return "person{" +
"name='" + name + '\'' +
", age=" + age +
", work='" + work + '\'' +
'}';
}
}
json,ajax综合案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.5.1.min.js"></script>
<script>
$(function () {
$("#btn").click(function () {
var username=$("#username").val()
alert(username)
$.ajax(
{
url:"demo1",
type:"POST",
data:{username:username},
success:function(data)
{
console.log(data)
console.log(data.username)
},
dataType:"json"
}
)
})
})
</script>
</head>
<body>
<input type="text" id="username" >
<input type="button" id="btn" value="提交">
</body>
</html>
package com.blb.com;
import org.codehaus.jackson.map.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
@WebServlet("/demo1")
public class one extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String username = req.getParameter("username");
// String age = req.getParameter("age");
System.out.println(username);
// System.out.println(age);
// System.out.println("开始执行write函数");
// resp.getWriter().write("username:"+username);
User user=new User();
user.setUsername(username);
ObjectMapper mapper=new ObjectMapper();
String s= mapper.writeValueAsString(user);
resp.getWriter().write(s);
}
}