JSON介绍及使用

目录

什么是JSON

JSON在JavaScript中的使用

JSON的定义

JSON的访问

JSON的两个常用方法

JSON在Java中的使用

JavaBean和JSON的相互转换

List和JSON的相互转换

Map和JSON的相互转换


什么是JSON

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

说明:轻量级指的是与xml作比较,数据交换指的是客户端和服务器之间业务数据的传递格式

JSON在JavaScript中的使用

JSON的定义

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

JSON的访问

JSON本身是一个对象,JSON中的key可以理解为对象中的一个属性,JSON中访问key和访问对象的属性一样:JSON对象.key

JSON的两个常用方法

JSON的存在有两种形式:

  • 对象的形式存在,称为JSON对象
  • 字符串的形式存在,称为JSON字符串

两种形式可以相互转换:

  • JSON.stringify():把JSON对象转换为JSON字符串,类似于Java中的toString()
  • JSON.parse():把JSON字符串转化为JSON对象

使用场景:

  • 一般要操作JSON中的数据时,使用JSON对象
  • 一般要在客户端和服务器之间进行数据交换时,使用JSON字符串

JSON在Java中的使用

JavaBean和JSON的相互转换

java 复制代码
@Test
public void test1(){
    Person person = new Person(1,"你好");
    //创建Gson对象实例
    Gson gson = new Gson();
    //toJson可以把Java对象转换为JSON字符串
    String personJsonString = gson.toJson(person);
    System.out.println(personJsonString);
    //fromJson把JSON字符串转换回Java对象,第一个参数是JSON字符串,第二个参数是转换回去的Java对象类型
    Person person1 = gson.fromJson(personJsonString,Person.class);
    System.out.println(person1);
}

输出为:

{"id":1,"name":"你好"}

Pserson{id=1,name='你好'}

List和JSON的相互转换

java 复制代码
@Test
public void test2(){
    List<Person> personList = new ArrayList<>();
    personList.add(new Person(1,"张三");
    personList.add(new Person(2,"李四");

    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);
    
}

输出为:

{"id":1,"name":"张三"},{"id":2,"name":"李四"}

Person{id=1,name='张三'},Person{id=2,name='李四'}

Map和JSON的相互转换

java 复制代码
@Test
public void test3(){
    Map<Integer,Person> personMap = new HashMap<>();
    personMap.put(1,new Person(1,"张三"));
    personMap.put(2,new Person(2,"李四"));

    Gson gson = new Gson();
    //把Map集合转换为JSON字符串
    String personMapJsonString = gson.toJson(personMap);
    System.out.println(personMapJsonString);

    Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString,new PersonMapType().getType());
    System.out.println(personMap2);
}

输出为:

{"1":{"id":1,"name":"张三"},"2":{"id":2,"name":"李四"}}

{1=Person{id=1,name="张三"},2=Person{id=2,name="李四"}}

相关推荐
ID_180079054734 小时前
除了 Python,还有哪些语言可以解析 JSON 数据?
开发语言·python·json
电商API&Tina15 小时前
跨境电商如何接入1688官方寻源通接口?附接入流程
java·数据库·python·sql·oracle·json·php
神の愛1 天前
利用json-to-ts工具进行转换,放置在typeScript.ts文件中
javascript·typescript·json
BUG_MeDe2 天前
从Json对象中提取某个对象的一点注意--libjson-c
linux·json
HelloTonyGo2 天前
个人游戏笔记本免费“养龙虾”(七)OpenClaw的openclaw.json文件的基本配置
ubuntu·json·配置·读写权限·openclaw
数据知道3 天前
claw-code 源码详细分析:`reference_data` JSON 快照——大型移植里「对照底稿」该怎么治理与演进?
linux·python·ubuntu·json·claude code
不会写DN3 天前
让 gRPC 服务同时支持 HTTP/JSON 的gRPC-Gateway
http·json·gateway
bloglin999993 天前
掌握解析JSON输出的技巧:使用LLM生成结构化数据
json
电商API&Tina5 天前
【京东item_getAPI 】高稳定:API 、非爬虫、不封号、不掉线、大促稳跑
大数据·网络·人工智能·爬虫·python·sql·json
LittroInno5 天前
T-JSON跨平台网络通信协议——边缘认知设备的二次开发实战指南
人工智能·计算机视觉·目标跟踪·json