JSON简单入门

Posted 暴躁的程序猿啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"
Userid=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传入原来的泛型本文中使用的匿名内部类方式

以上是关于JSON简单入门的主要内容,如果未能解决你的问题,请参考以下文章

26opencv入门轮廓查找与绘制——正外接矩形

JSON简单入门

JSON简单入门

生成与解析JSON~简单入门

Java Json API:Gson使用简单入门

Go 语言入门很简单 -- Go 语言解析JSON #私藏项目实操分享#