当前位置: 首页 > article >正文

【JavaWeb】JSON介绍及入门案例

目录

1.什么是JSON

1.1.JSON在JavaScript中的使用

1.1.1.JSON的定义

1.1.2.JSON的访问

1.1.3.JSON的两个常用方法

1.2.JSON在Java中的使用

1.2.1.JavaBean和JSON的转换

1.2.2.List和JSON的转换

1.2.3.map和JSON的转换


1.什么是JSON

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

1.1.JSON在JavaScript中的使用

1.1.1.JSON的定义

JSON由键值对组成,并且由花括号包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间使用逗号进行分隔

var jsonObj = {
    "key1":12,
    "key2":"abc",
    "key3":true,
    "key4":[11,"arr",false],
    "key5":{
        "key5_1":51,
        "key5_2":"key5_2_value"
    },
    "key6":[{
        "key6_1_1":611,
        "key6_1_2":"key6_1_2_value"
    },{
        "key6_2_1":621,
        "key6_2_2":"key6_2_2_value"
    }]
};

1.1.2.JSON的访问

JSON本身就是一个对象,我们可以把key理解为对象的一个属性

alert(typeof(jsonObj));
alert(jsonObj.key1);
alert(jsonObj.key2);
alert(jsonObj.key3);
alert(jsonObj.key4);
for (var i = 0; i < jsonObj.key4.length; i++) {
    alert(jsonObj.key4[i]);
}
alert(jsonObj.key5.key5_1);
alert(jsonObj.key5.key5_2);
alert(jsonObj.key6);
var jsonItem = jsonObj.key6[0];
alert(jsonItem.key6_1_1);
alert(jsonItem.key6_1_2);

1.1.3.JSON的两个常用方法

JSON有两种形式,一种是JSON对象,另一种是JSON字符串。如果我们要操作JSON中的数据,使用JSON对象;如果要在客户端和服务端之间进行数据交换,使用JSON字符串

  • JSON.stringify()

把JSON对象转换为JSON字符串

  • JSON.parse()

把JSON字符串转换为JSON对象

var jsonObjString = JSON.stringify(jsonObj);
alert(jsonObjString);
var jsonObj2 = JSON.parse(jsonObjString);
alert(jsonObj2.key1);
alert(jsonObj2.key2);

1.2.JSON在Java中的使用

1.2.1.JavaBean和JSON的转换

@Test
public void test1() {
    Person person = new Person(1, "p1");
    Gson gson = new Gson();
    //toJson方法可以把Java对象转换成JSON字符串
    String personString = gson.toJson(person);
    System.out.println(personJsonString);
    //fromJson把JSON字符串转换回Java对象
    //第二个参数是转换回去的Java对象类型
    Person person1 = gson.fromJson(personJsonString, Person.class);
    System.out.println(person1);
}

1.2.2.List和JSON的转换

@Test
public void test2() {
    List<Person> personList = new ArrayList<>();
    personList.add(new Person(1, "p1"));
    personList.add(new Person(2, "p2"));
    Gson gson = new Gson();
    //把List转换为JSON字符串
    String personListJsonString = gson.toJson(personList);
    System.out.println(personListJsonString);
    List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
    System.out.println(list);
    Person person = list.get(0);
    System.out.println(person);
}

1.2.3.map和JSON的转换

@Test
public void test3() {
    Map<Integer, Person> personMap = new HashMap<>();
    personMap.put(1, new Person(1, "p1"));
    personMap.put(2, new Person(2, "p2"));
    Gson gson = new Gson();
    String personMapJsonString = gson.toJson(personMap);
    System.out.println(personMapJsonString);
    Map<Integer, Person> personMap2 = gson.fromJson(personMapJsonString, new personMapType().getType());
    Map<Integer, Person> personMap2 = gson.fromJson(personMapJsonString, new TypeToken<HashMap<Integer,Person>>(){}.getType());
    System.out.println(personMap2);
    Person p = personMap2.get(1);
    System.out.println(p);
}

http://www.kler.cn/a/393682.html

相关文章:

  • RabbitMQ高效的消息队列中间件原理及实践
  • 使用 Keras 训练一个卷积神经网络(CNN)(入门篇)
  • 认识一下Unicorn
  • C++ 并发专题 - 自旋锁的实现(Spinlock)
  • 【Linux】-学习笔记03
  • 【MySQL】约束
  • (动画版)排序算法 -选择排序
  • 单片机中的BootLoader(重要的概念讲解)
  • C语言中,让人又爱又恨的字符串编码
  • Python学习从0到1 day26 第三阶段 Spark ③ 数据计算 Ⅱ
  • java作业项目以及azkaban的操作
  • Java入门16——接口
  • exo - 使用日常设备运行AI集群
  • Linux 系统上部署 RabbitMQ
  • Python 正则表达式进阶用法:分组与引用详解
  • 数据挖掘在金融交易中的应用:民锋科技的智能化布局
  • Linux:进程概念
  • dto,vo这些有什么用
  • 万字长文解读深度学习——Transformer
  • SpringBoot(4)- data整合
  • 实习冲刺Day21
  • JSX 是react 专有的吗
  • Simulink中Matlab function使用全局变量
  • 我们来学mysql -- EXPLAIN之select_type(原理篇)
  • Rocky9/Ubuntu使用pip安装python的库mysqlclient失败解决方式
  • C# 实现对指定句柄的窗口进行键盘输入的实现