JSON
1、什么是JSON?
| JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对JSON的支持: |
| (包括 C,C++,C |
| |
| json是一种轻量级的数据交换格式。 |
| |
| 轻量级指的是跟xml做比较。 |
| |
| 数据交换指的是客户端和服务器之间业务数据的传递格式。 |
1.1、JSON在JavaScript中的使用
1.1.1、json的定义
| json是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。 |
| |
json定义示例:
| varjsonObj={ |
| "key1":12, |
| "key2":"abc", |
| "key3":true, |
| "key4":[11,"arr",false], |
| "key5":{ |
| "key5_1":551, |
| "key5_2":"key5_2_value" |
| }, |
| "key6":[{ |
| "key6_1_1":6611, |
| "key6_1_2":"key6_1_2_value" |
| },{ |
| "key6_2_1":6621, |
| "key6_2_2":"key6_2_2_value" |
| }] |
| }; |
1.1.2、json的访问
| json本身是一个对象。 |
| json中的key我们可以理解为是对象中的一个属性。 |
| json中的key访问就跟访问对象的属性一样: json对象.key |
| |
json访问示例:
| alert(typeof(jsonObj)); |
| alert(jsonObj.key1); |
| alert(jsonObj.key2); |
| alert(jsonObj.key3); |
| alert(jsonObj.key4); |
| |
| for(vari=0;i<jsonObj.key4.length;i++){ |
| alert(jsonObj.key4[i]); |
| } |
| alert(jsonObj.key5.key5_1); |
| alert(jsonObj.key5.key5_2); |
| alert(jsonObj.key6); |
| |
| varjsonItem=jsonObj.key6[0]; |
| |
| alert(jsonItem.key6_1_2); |
1.1.3、json的两个常用方法
| json的存在有两种形式: |
| 一种是:对象的形式存在,我们叫它json对象。 |
| 一种是:字符串的形式存在,我们叫它json字符串。 |
| |
| 一般我们要操作json中的数据的时候,需要json对象的格式。 |
| 一般我们要在客户端和服务器之间进行数据交换的时候,使用json字符串。 |
| |
| JSON.stringify() 把json对象转换成为json字符串 |
| JSON.parse() 把json字符串转换成为json对象 |
示例代码:
| |
| var jsonObjString = JSON.stringify(jsonObj); |
| alert(jsonObjString) |
| |
| |
| var jsonObj2 = JSON.parse(jsonObjString); |
| alert(jsonObj2.key1); |
| alert(jsonObj2.key2); |
1.2、JSON在java中的使用
1.2.1、javaBean和json的互转
| @Test |
| public void test1(){ |
| Person person = new Person(1,"国哥好帅!"); |
| |
| Gson gson = new Gson(); |
| |
| |
| String personJsonString = gson.toJson(person); |
| System.out.println(personJsonString); |
| |
| |
| |
| |
| Personperson1 = gson.fromJson(personJsonString,Person.class); |
| System.out.println(person1); |
| } |
1.2.2、List和json的互转
| |
| @Test |
| public void test2(){ |
| List<Person> personList = new ArrayList<>(); |
| personList.add(new Person(1,"国哥")); |
| personList.add(new Person(2,"康师傅")); |
| Gson gson = new Gson(); |
| |
| |
| String personListJsonString = gson.toJson(personList); |
| System.out.println(personListJsonString); |
| |
| |
| List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType()); |
| System.out.println(list); |
| Person person = list.get(0); |
| System.out.println(person); |
| } |
1.2.3、map和json的互转
| |
| @Test |
| public void test3(){ |
| Map<Integer,Person> personMap = new HashMap<>(); |
| personMap.put(1, new Person(1,"国哥好帅")); |
| personMap.put(2, new Person(2,"康师傅也好帅")); |
| Gson gson = new Gson(); |
| |
| |
| String personMapJsonString = gson.toJson(personMap); |
| System.out.println(personMapJsonString); |
| |
| PersonMapType().getType()); |
| |
| Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString,new TypeToken<HashMap<Integer,Person>>(){}.getType()); |
| System.out.println(personMap2); |
| Personp = personMap2.get(1); |
| System.out.println(p); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步