java中 List、Map转成 Json对象
准备工作:
说明:转换时要引入一个jar包,我用的是Gson.ar
官方下载地址是: https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/
工具:idea
导入jar包后如图所示:
创建一个对象Persion:
package com.xu.po;
public class Persion {
private Integer no;
private String name;
public Integer getNo() {
return no;
}
public void setNo(Integer no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Persion{" +
"no=" + no +
", name='" + name + '\'' +
'}';
}
public Persion(Integer no, String name) {
this.no = no;
this.name = name;
}
}
1.JavaBean和json互转
public static void toJson() {
// 创建一个对象
Persion persion = new Persion(1, "zs");
// 引用Gson
Gson gson = new Gson();
// 对象转json
String tojson = gson.toJson(persion);
// 结果:{"no":1,"name":"zs"}
System.out.println(tojson);
//把json 转成Object对象
Object obj = gson.fromJson(tojson, Persion.class);
//结果:Persion{no=1, name='zs'}
System.out.println(obj);
}
2.List和Json互转
public static void toJson2() {
List<Persion> per = new ArrayList<>();
per.add(new Persion(2, "ls"));
per.add(new Persion(3, "ww"));
Gson gson = new Gson();
//List 转Json字符串
String perListToJson = gson.toJson(per);
// 结果:[{"no":2,"name":"ls"},{"no":3,"name":"ww"}]
System.out.println(perListToJson);
// Json 转 List
List<Persion> list = gson.fromJson(perListToJson, new TypeToken<List<Persion>>() {}.getType());
// 返回结果:[Persion{no=2, name='ls'}, Persion{no=3, name='ww'}]
System.out.println(list);
}
3.map和json互转
public static void toJson3() {
Map<Integer,Persion> persionMap = new HashMap<>();
persionMap.put(1,new Persion(1, "ls"));
persionMap.put(2,new Persion(3, "zs"));
Gson gson = new Gson();
String tojson = gson.toJson(persionMap);
// 结果:{"1":{"no":1,"name":"ls"},"2":{"no":3,"name":"zs"}}
System.out.println(tojson);
Map<Integer,Persion> toMap = gson.fromJson(tojson,new TypeToken<Map<Integer,Persion>>(){}.getType());
// 结果:{1=Persion{no=1, name='ls'}, 2=Persion{no=3, name='zs'}}
System.out.println(toMap);
}
最后在说一下 javaScript的 互相转换吧!
背景:前后端交互需要用json 相互传递数据
需要用的函数:
JSON.stringify(jsonObj) // 把json对象转成json字符串
JSON.parse(jsonStr)// 相反
Json的定义:
json是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。
key的值可以是:布尔类型 ,int类型,字符串,数组,对象。
上代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<script>
//注意一下
//大括号叫对象 { },里面包裹的是key和value,就是键值对.
//中括号叫数组 [ ], 里面是,可以是json对象,字符串,
//声明一个 json 对象
var json = {
"key1": 12,
"key2": "str",
"key3": {
"key": 11,
"key1": "str"
},
"key6": [22, "str"],
"key5": [{
"key": 11,
"key1": "str"
}, {
"key": 11,
"key1": "str"
}],
"key8": true
}
var str = JSON.stringify(json)
alert(str);
alert(JSON.parse(str));
</script>
<body>
</body>
</html>
懒惰才是推动人类科技进步的原动力!
这篇文章的原因有两点:
一是为了备忘,毕竟好记性不如烂笔头!
二来是为了帮助其他像我一样正在为改变世界而努力的小白们对知识的探索与渴望!