一、对象和list集合转为json格式
1.创建User实体类
2导入jar包
3转换
1.创建User实体类
public class User {
private int id;
private String name;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2导入jar包
3转换
import com.java.po.User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class JsonTest01 {
public static void main(String[] args) {
//现在是一个对象,但是我们要把对象转为json格式
User user1=new User(1,"张三1");
/**
*
* 1.导入jar包
* 2.把对象转为json格式
*
* */
System.out.println(user1);
//转Json格式
JSONObject userJson= JSONObject.fromObject(user1);
System.out.println(userJson);//{"id":1,"name":"张三"}这就是Json格式
//集合
User user2=new User(2,"张三2");
User user3=new User(3,"张三3");
List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
list.add(user3);
//把集合转为json格式
JSONArray listJson= JSONArray.fromObject(list);
System.out.println(listJson);//[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}]
//这样就转成了JSON格式
}
}
效果图
二、页面上获取json数据,在浏览器中控制台里面查看
1.编写jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSON</title>
<script>
//json定义基本格式 json都是键值对的
//var userJson={"":""}; //一个
//{"":"","":""}//两个
//{"":"","":"","":""}//三个
var userJson={"id":"1","name":"张三1"};
//需要获取json中的值
console.log(userJson.id)//通过键获取值
console.log(userJson.name)
console.log(userJson["name"])
//返回数组
// [{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}]
// var ListJson=[{}]; //一个
// var ListJson=[{},{}]; //两个
//例子数组循环
/* var nums=[1,2,3];
for (var key in nums){
console.log(nums)
}*/
var ListJson=[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}];
for (var key in ListJson){
console.log(ListJson[key])
}
</script>
</head>
<body>
</body>
</html>
三、循环输出
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script>
//基本键值对循环
var userJson={"id":"1","name":"张三1"};
for (var key in userJson){
// console.log(key)//循环得到所有的键
console.log(userJson[key])//循环得到所有的值
}
//循环数组
var ListJson=[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}];
for (var key in ListJson){
console.log(key)//循环得到所有的下标 0,1,2
var user2= ListJson[key]//循环得到所有的值
for (var key in user2){
// console.log(key)//循环得到所有的键
console.log(user2[key])//循环得到所有的值
}
}
</script>
</head>
<body>
</body>
</html>
json和String的类型转换
<script>
var userJson={"id":"1","name":"张三1"};
console.log(typeof userJson);//返回的是Object 是json格式
//加了单引号 这个代码其实是json格式数据,在外层加了'' 变成了字符串
var userStr='{"id":"1","name":"张三1"}';
console.log(typeof userStr);//返回的是String
//把json格式的字符串转换为json格式
var strToJson=JSON.parse(userStr);
console.log(typeof strToJson);//Object 转换成功为JSON格式
//把json格式转为字符串
var jsonToStr=JSON.stringify(strToJson);
console.log(typeof jsonToStr);//String 转换成功为字符串
</script>