栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSON入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON入门

目录

什么是JSON

JSON在JavaScript中的使用

json的定义

json的访问

json的两个常用方法

在Java中json的转换

javaBean和Json的转换

list和json的转换

Map集合和json的转换


什么是JSON

JSON是一种轻量级的数据交换格式。易于人阅读何编写。同时也易于机器解析何生成,JSON采用完全独异于语言的文本格式,多种语言都提供对json的支持

json是一种轻量级的数据交换格式

轻量是跟xml比较

数据交换指的是客户端跟服务器之间的业务数据的传递格式

JSON在JavaScript中的使用

json的定义

json是由键值对组成,并且由大括号包围,每个键由引号引起来,建和值之间可以用冒号进行分割,

多组键值对之间用逗号进行分割

            // json的定义
            var jsonObj = {
                "key1":12,
                "key2":"abc",
                "key3":true,
                "key4":[11,"arr",false],
                "key5":{
                    "key5_1":551,
                    "key5_2":"ket5_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"
                }]
            };

json的访问

json本身是一个对象

json中的key可以理解成对象中的一个属性

json中的key访问跟访问对象属性一样,json对象.key

            // json的访问
            alert(jsonObj.key1);
            alert(jsonObj.key2)
            alert(jsonObj.key3)
            alert(jsonObj.key4)
            for (var i = 0;i 

json的两个常用方法

json的存在有两种形式。

一种是,对象的形式存在,我们叫它json对象

一种是,字符串的形式存在,我们叫它json字符串

一般我们要操作json中的数据的时候,需要用json对象的格式

一般我们要在客户端和服务器之间进行数据交换的时候使用json字符串

JSON.stringify() 把json对象转化为json字符串

JSON.parse() 把json字符串转化为json字符串

在Java中json的转换

gson.toJson(对象名);//把java对象转化为json字符串

gson.fromJson(json字符串名, class/type);//把json字符串转换为Java对象

javaBean和Json的转换

在JavaBean与Json的转化中,直接调用toJson可将对象转化为json字符串

将json转化为JavaBean时,直接调用fromJson方法

//javaBean和Json的转换
    @Test
    public void test1(){
        Person person = new Person(1,"qw");
​
        //创建Gson对象实例
        Gson gson = new Gson();
        String personjsonString = gson.toJson(person);//把java对象转化为json字符串
        System.out.println(personjsonString);
​
        Person person1 = gson.fromJson(personjsonString, Person.class);//把json字符串转换为Java对象
​
    }

list和json的转换

list转化为json时与JavaBean相同

将json转化为list时调用fromJson(json字符串名,type)

type的创建需声明一个类并继承TypeToken类此类具有泛型,泛型即为要转化的类型,这个类只用继承即可

public class PersonListType extends TypeToken> {
}

或者可以使用匿名内部类的方法

List list = gson.fromJson(personListJsonString, new TypeToken>(){}.getType());

在获得type时new此类对象并调用getType方法即可

//list和json的转换
    @Test
    public void test2(){
​
        List personList = new ArrayList<>();
​
        personList.add(new Person(1,"小明"));
        personList.add(new Person(2,"小红"));
        personList.add(new Person(3,"小李"));
​
        Gson gson = new Gson();
​
        String personListJsonString = gson.toJson(personList);
//        System.out.println(personListJsonString);
        List list = gson.fromJson(personListJsonString, new PersonListType().getType());
        //System.out.println(list);
        Person person = list.get(0);
        System.out.println(person);
​
    }

Map集合和json的转换

与list的转化相同,代码如下

public class PersonMapType extends TypeToken> {
}

也可以使用匿名内部类

Map personMap1 = gson.fromJson(personJsonMap, new TypeToken>(){}.getType());

 public void test3(){
        Map personMap = new HashMap<>();
​
        personMap.put(1,new Person(1,"小明"));
        personMap.put(2,new Person(2,"小红"));
        personMap.put(3,new Person(3,"小李"));
​
        Gson gson = new Gson();
        //把map转化为json字符串
        String personJsonMap = gson.toJson(personMap);
        //System.out.println(personJsonMap);
​
        //把json转化为map
        Map personMap1 = gson.fromJson(personJsonMap, new PersonMapType().getType());
        System.out.println(personMap1);
​
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号