JSON是什么?

13 篇文章 0 订阅
1 篇文章 0 订阅

JSON是什么?

json是一种轻量化数据交换格式,易于人的阅读和编写

json采用完全独立于语言的一种格式,而且很多语言都提供了对json的支持,这使得它能够成为理想的数据交互格式

json是一种轻量级的数据交互格式
轻量级是与xml作比较

json的格式: 由键值对组成,用花括号包围,键是由双引号包裹,键与值之间由冒号分隔,多组键值对之间是由逗号进行分隔

JSON在JavaScript中的使用

JSON的定义与访问

			// json的定义
            var jsonObj = {
                //Number型
                "key1" : 12,
                //String型
                "key2" : "abc",
                //Boolean型
                "key3" : true,
                //数组型
                "key4" : [123,'abc',true],
                //json
                "key5" : {
                    "key5_1" : "value5_1",
                    "key5_2" : "value5_2"
                },
                //json数组
                "key6" : [{
                    "key6_1_1" : "value6_1_1",
                    "key6_1_2" : "value6_1_2"
                },{
                    "key6_2_1" : "value6_2_1",
                    "key6_2_2" : "value6_2_2"
                }]
            }
            
			// json访问普通的值
            alert(jsonObj.key1);//12
            alert(jsonObj.key2);//abc
            alert(jsonObj.key3);//true
            
            //json访问的值是数组
            alert(jsonObj.key4)//123,abc,true
            //遍历json中的数组,与普通数组变量一样
             for (let i = 0; i < jsonObj.key4.length; i++) {
                 alert(jsonObj.key4[i]);
             }
            
            //json中获取值为json     变量1.key1.key2,返货key2的值
             alert(jsonObj.key5.key5_1);
            
            //json中获取值json数组的值   变量1.key1[index].key2,返货key2的值
             alert(jsonObj.key6[0].key6_1_1);
            //遍历json中的json数组的值
            for (let i = 0; i < jsonObj.key6.length; i++) {
                alert(jsonObj.key6[i])
            }

JSON的两种存在形式

JSON有两种形式存在,它们直接能够相互转换
一种是对象的形式: json对象
一种是字符串的形式: json字符串

在JavaScript中它们转换方法
json对象转json字符串方法: JSON.stringify();
json字符串转json对象方法: JSON.parse();

			// json对象转字符串
            var jsonStr = JSON.stringify(jsonObj);
            alert(jsonStr);
            /*
            {
            "key1":12,
            "key2":"abc",
            "key3":true,
            "key4":[123,
            "abc",true],
            "key5":{"key5_1":"value5_1","key5_2":"value5_2"},
            "key6":[{"key6_1_1":"value6_1_1","key6_1_2":"value6_1_2"},
            {"key6_2_1":"value6_2_1","key6_2_2":"value6_2_2"}]
            }
             */
             
			// json字符串转json对象
            jsonObj = JSON.parse(jsonStr);
            alert(jsonObj);  // [object Object]

JavaBean与JSON之间的转换

我们这里要用到gson的jar包,将gson-2.2.4.jar包导入lib目录
在这里插入图片描述

public class JsonTest {

    /**
     * JavaBean与son字符串的相互转换
     */
    @Test
    public void test1(){
        //创建Gson的实例化对象
        Gson gson = new Gson();
        //JavaBean转换为Json字符串
        String personToJsonStr = gson.toJson(new Person(2, "Morty"));
        System.out.println(personToJsonStr); //我们得到一个标准的Json字符串: {"id":2,"name":"Morty"}

        //Json字符串转换为JavaBean
        Person person = gson.fromJson(personToJsonStr, Person.class); //两个参数分别为: Json字符串、Bean类
        System.out.println(person); //得到person对象的toString: Person{id=2, name='Morty'}
    }

    /**
     * List集合转换为Json字符串
     */
    @Test
    public void test2(){
        //我们创建一个List集合,泛型为Person对象,并存储2个元素
        List<Person> listPer = new ArrayList<>();
        listPer.add(new Person(3,"Rick"));
        listPer.add(new Person(4,"Andy"));

        //创建Gson的实例化对象
        Gson gson = new Gson();

        //List集合转换为Json字符串
        String listToJsonStr = gson.toJson(listPer);
        System.out.println(listToJsonStr); //得到Json字符串: [{"id":3,"name":"Rick"},{"id":4,"name":"Andy"}]

        //Json字符串转换为List集合
        //new TypeToken<List<Person>>(){}.getType() 是对List与Map集合的泛型获取
        List<Person> list = gson.fromJson(listToJsonStr,new TypeToken<List<Person>>(){}.getType());
        System.out.println(list); //得到List集合: [Person{id=3, name='Rick'}, Person{id=4, name='Andy'}]
    }

    /**
     * Map集合转换为Json字符串
     */
    @Test
    public void test3(){
        //我们创建一个Map集合,并存储2个元素
        Map<Integer,String> map = new HashMap<>(2);
        map.put(111,"Jerry");
        map.put(222,"Beth");

        //创建Gson的实例化对象
        Gson gson = new Gson();

        String mapToJsonStr = gson.toJson(map);
        System.out.println(mapToJsonStr); //得到Json字符串: {"222":"Beth","111":"Jerry"}

        Map<Integer,String> jsonToMap = gson.fromJson(mapToJsonStr, new TypeToken<Map<Integer, String>>(){}.getType());
        System.out.println(jsonToMap); //得到Map集合: {"222":"Beth","111":"Jerry"} {222=Beth, 111=Jerry}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值