JSON(JavaScript Object Notation)是一种轻量级的、基于文本的数据格式,在很多环境都有支持,本文将介绍JSON在JavaScript中的应用。
JSON中的基本数据类型与JavaScript相似,包括:
JSON数据一般会使用数组(Array)或映射(Map)数据结构传递,下面分别介绍。
JSON的数组使用一对方括号定义,每个元素使用逗号(,)分隔。将字符串格式的JSON数据转换为JavaScript对象时可以使用JSON.parse()方法,如下面的代码。
<script> let json = '[1,2,3]'; let arr = JSON.parse(json); alert(arr.length); // 3 alert(arr[1]); // 2 </script>
本例,字符串json中定义了JSON格式的数组,然后,使用JSON.parse()方法转换为JavaScript中的数组对象;最后,显示了数组元素的数量和第二个元素的数据。
下面的代码显示了JSON数据中包含双引号的情况。
<script> let json = '["a","b","c\\""]'; let arr = JSON.parse(json); alert(arr.length); // 3 alert(arr[2]); // c" </script>
将JavaScript对象转换为JSON格式字符串时可以使用JSON.stringify()方法,如下面的代码。
<script> let arr = [1,2,3]; let json = JSON.stringify(arr); alert(json); // [1,2,3] </script>
JSON中的映射(Map)对象使用一对花括号定义,其格式为{key1:value1, key2:value2, ...}。下面的代码演示了相关应用。
<script> let json = '{ "name": "Tom", "age": 25, "sex": "男" }'; let m1 = JSON.parse(json); alert(m1["name"]); // Tom alert(m1.age); // 25 // let map = new Map(Object.entries(m1)); alert(map.get("name")); // Tom alert(map.get("sex")); // 男 </script>
代码中,首先使用单引号字符串定义了JSON中的Map数据结构,然后使用JSON.parse()方法转换为JavaScript中的Map结构,并显示了其中name和age的数据;接下来,将数据转换为Map集合对象,并通过get()方法显示了name和sex的数据。
将JavaScript中的Map结构数据转换为JSON字符串时,同样使用JSON.stringity()方法,如下面的代码。
<script> let m1 = { "name": "Tom", "age": 25, "sex": "男" }; // let json = JSON.stringify(m1); alert(json); </script>
执行代码会显示{"name":"Tom","age":25,"sex":"男"}。