23 Json
Json
1.1、什么是 JSON
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析
和生成。 它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一
个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java,
JavaScript, Perl, Python 等)。 这些特性使 JSON 成为理想的数据交换语言
1.2、JSON 对象定义和基本使用
在标准的 json 格式中,json 对象由在括号括起来,对象中的属性也就是 json 的 key 是一个字符串,所以一定要使用
双引号引起来。每组 key 之间使用逗号进行分隔
1.2.1、JSON 的定义
<script type="text/javascript">
// json的定义
var jsonObj = {
"key1":12,
"key2":"abc",
"key3":[111,"arr",false],
"key4":true,
"key5":{
"key5.1":551,
"key5.2":"552"
},
"key6":[{
"key6.1.1":661,
"key6.1.2":"key6_value"
},{
"key6.2.1":661,
"key6.2.2":"key6_value"
}]
};
</script>
1.2.2、JSON 对象的访问
json 对象,顾名思义,就知道它是一个对象。里面的 key 就是对象的属性。我们要访问一个对象的属性,只需要使
用【对象名.属性名】的方式访问即可
<script type="text/javascript">
// json的访问
alert(jsonObj.key1);
for (var i = 0;i < jsonObj.key3.length;i++){
alert(jsonObj.key3[i]);
}
alert(jsonObj.key5["key5.1"]);
alert(jsonObj.key6[0]["key6.1.1"]);
</script>
1.3、JSON 中两个常用的方法。
JSON 对象和字符串对象的互转
JSON.stringify( json ); 此方法可以把一个 json 对象转换成为 json 字符串
JSON.parse( jsonString ); 此方法可以把一个 json 字符串转换成为 json 对象
// json对象转字符串
var jsonObjString = JSON.stringify(jsonObj);
// json字符串转json对象
var jsonObj2 = JSON.parse(jsonObjString);
1.4、JSON 在 java 中的使用(****重点)
我们要使用 json 和 java 中使用,我们需要使用到一个第三方的包。它就是 gson.jar
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java对象,或者反过来
json 在 java 中的操作。常见的有三种情况。
1、java 对象和 json 的转换
2、java 对象 list 集合和 json 的转换
3、map 对象和 json 的转换
public class JsonTest {
// 1、javaBean和 json 的转换
@Test
public void test1(){
Person person = new Person(1,"tom");
//创建Gson对象的实例
Gson gson = new Gson();
//toJson()方法可以将java对象转换成json字符串
String personJsonString = gson.toJson(person);
System.out.println(personJsonString);
//fronJson()把json字符串转换回java字符串
//第一个参数是json字符串
//第二个参数是转换回去的java对象类型
Person person1 = gson.fromJson(personJsonString, Person.class);
}
// 2、 list 和 json 的转换
@Test
public void test2(){
List<Person> personList = new ArrayList<>();
personList.add(new Person(1,"hh"));
personList.add(new Person(1,"康师傅"));
Gson gson = new Gson();
//把list转换为json字符串
String personListJsonString = gson.toJson(personList);
System.out.println(personListJsonString);
List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
Person person = list.get(1);
}
// 3、map 和json 的转换
@Test
public void test3(){
Map<Integer,Person> personMap = new HashMap<>();
personMap.put(1,new Person(1,"hh"));
personMap.put(2,new Person(2,"gg"));
Gson gson = new Gson();
//把map集合转换成json字符串
String personMapJsonString = gson.toJson(personMap);
// Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new PersonMapType().getType());
Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new TypeToken<HashMap<Integer,Person>>(){}.getType());
Person person = personMap2.get(1);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)