JSON简单入门

什么是Json?

Json是一种轻量级的数据交换格式。易于人们的阅读和编写,同时也易于机器解析和生成。Json采用完全独立于语言的文本格式,而且很多语言都提供了对Json的支持。这样就使得Json成为理想的数据交换格式。

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

轻量级指的是跟xml做比较

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

JSON在JavaScript中的使用

Json的定义

Json是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔。

多组键值对之间使用逗号进行分隔。

 var jsonTest={
          "k1": 1,
          "k2": false,
          "k3": "你好",
          "k4": [1,"2",false],
          "k5": {
              "k51": true
          },
           "k6":[{
               "k61": true
           },{
               "k62": 111
           }]
        };

Json的访问

json本身是一个对象

Json中的key我们可以理解为是对象中的一个属性

Json中的key访问就跟访问对象的属性一样

//访问普通值
jsonTest.k1;
jsonTest.k2;
//访问数组 第一个元素
jsonTest.k4[0]
//访问json中的json
jsonTest.k5.k51

json的两个常用方法

json有两种形式:

1.一种对象的形式存在我们叫它Json对象

2.一种字符串的形式存在我们叫它json字符串

使用场景:我们要操作json中的数据的时候,需要json对象

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

//把Json对象转化称为json字符串
JSON.stringify()
//把Json字符串转化为Json对象
JSON.parse()

Json在Java中的使用

JavaBean和Json的转换

引入依赖

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
</dependency>

测试

/**
 * JavaBean和json的转换
 */
@Test
public void test1(){
    User user = new User(1,"张三","123","21341412@qq.com");
    Gson gson = new Gson();
    //把javaBean转换成json
    String json = gson.toJson(user);
    System.out.println(json);
    //fromJson 把Json转换成JavaBean
    System.out.println(gson.fromJson(json,User.class));
}

输出

{"id":1,"username":"张三","password":"123","email":"21341412@qq.com"}
User{id=1, username='张三', password='123', email='21341412@qq.com'}

List和Json的转换

/**
 * List和json的转换
 */
@Test
public void test2(){
    ArrayList<User> list = new ArrayList<>();
    list.add(new User(1,"张三","123","21341412@qq.com"));
    System.out.println(list);
    Gson gson = new Gson();
    String json = gson.toJson(list);
    System.out.println(json);
    System.out.println(gson.fromJson(json,new TypeToken<HashMap<Integer,User>>(){}.getType()));
}

Map和json的转换

/**
 * Map和json的转换
 */
@Test
public void test3(){
    Map<Integer, User> hashMap = new HashMap<>();
    hashMap.put(1,new User(1,"张三","123","21341412@qq.com"));
    hashMap.put(2,new User(2,"张四","123","21341413@qq.com"));
    System.out.println("原始的map"+hashMap);
    Gson gson = new Gson();
    String json = gson.toJson(hashMap);
    System.out.println(json);
    HashMap hashMap1 = gson.fromJson(json,new TypeToken<HashMap<Integer,User>>(){}.getType());
    System.out.println("转换回来的map---"+hashMap1);
}

注意:这里fromJson转换回对象时 原来的泛型会丢失 我们需要继承TypeToken传入原来的泛型本文中使用的匿名内部类方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值