文本数据交换格式 -- JSON

简介: 文本数据交换格式 -- JSON

文本数据交换格式 – JSON


当大家需要使用JSON却不记得如何使用时,可以使用 JSon 在线文档:https://www.w3school.com.cn/js/js_json_intro.asp。里面不仅有详细的解说和用法,还有具体的实例,更便于理解和学习。


JSON还有一个在线校验格式化的JSON工具,可以帮助大家学习理解JSON转换成其他实体是什么形式,验证JSON格式是否正确,里面还可以在线生成、编码转换等等,感兴趣的可以去看看:https://www.bejson.com。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okYRSTIT-1683674460010)(C:\Users\w’y’x’n’l’c\AppData\Roaming\Typora\typora-user-images\image-20230510064010734.png)]


JSON介绍


JSON 是 JavaScript 对象表示法(JavaScript Object Notation),JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。它是轻量级的文本数据交换格式。具有自我描述性,更易理解。


JSON 独立于语言:因为JSON 解析器和 JSON 库支持许多不同的编程语言。


JSON 与 XML 的相同之处:


  • JSON 和 XML 数据都是 “自我描述” ,都易于理解。
  • JSON 和 XML 数据都是有层次的结构。
  • JSON 和 XML 数据可以被大多数编程语言使用。


JSON 与 XML 的不同之处:


JSON 不需要结束标签。


JSON 更加简短。


JSON 读写速度更快。


JSON 可以使用数组。


最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。


对于 AJAX 应用,JSON 比 XML 数据加载更快,而且更简单。


JSON 语法规则


JSON 语法是 JavaScript 对象表示语法的子集。


数据在名称/值对中:名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:。“name” : “小白”。


JSON 值可以是:


数字(整数或浮点数)

字符串(在双引号中)

逻辑值(true 或 false)

数组(在中括号中)

对象(在大括号中)

数据由逗号分隔


大括号保存对象:对象可以包含多个名称/值对:


中括号保存数组


JSON 对象和字符串对象转换


JSON.stringify(json)功能: 将一个 json 对象转换成为 json 字符串

// 把 json 对象转换成为字符串对象
var jsonStr =JSON.stringify(jsonObj); 


  1. JSON.parse( jsonString )功能: 将一个 json 字符串转换成为 json 对象
// 把 json 对象的字符串,转换成为 json 对象
var jsonObj2 = JSON.parse(jsonStr)


注意


1、 JSON.springify(json 对 象) 返 回对 应的 string, 并 不 会影 响 原 来 json 对 象。


2、JSON.parse(string) 函数会返回对应的 json 对象, 并不会影响原来 string 。


3、在定义 Json 对象时, 可以使用 ’ ’ 表示字符串, 比如 var json_person = {“name”: “jack”, “age”: 10}; 也可以写成 var json_person = {‘name’: ‘jack’, ‘age’: 10};


4、把原生字符串转成 json 对象时, 必须使用 “”, 否则会报错 比如: var str_dog = “{‘name’:‘小黄狗’, ‘age’: 4}”; 可以使用,但是转 json 就会报错。转换成json对象必须满足json语法。


5、JSON.springify(json 对象) 返回的字符串, 都是 “” 表示的字符串, 所以在语法格式正确 的情况下, 是可以重新转成 json 对象的.


JSON 的使用


JSON 在 java 中使用时,需要引入到第 3 方的包 gson.jar。Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以对 JSON 字符串 和 Java 对象相互转换。


一般用于三种转换


  1. Javabean 对象和 json 字符串 的转换
// 把对象转成为 json 字符串
String bookStr = gson.toJson(book)
// 把 json 字符串转换成为 java 对象
Book book2 = gson.fromJson(bookStr, Book.class);


List 对象和 json 字符串 的转换

//将 list 转成 json 字符串
String bookListStr = gson.toJson(bookList);
System.out.println("bookListStr=" + bookListStr);
//将 json 字符串转成 List 集合方式 1
//1. 要把复杂的 json 字符串转换成为 java 对象。需要继承 TypeToken 类
//2. TypeToken 是一个自定义泛型类,在创建时,需要指定具体类型
List<Book> bookList2 = gson.fromJson(bookListStr, new BookType().getType());
System.out.println("bookList2=" + bookList2);
//将 json 字符串转成 List 集合方式 2- 使用 匿名内部类
List<Book> bookList3 = gson.fromJson(bookListStr, new TypeToken<List<Book>>() {}.getType());
//通过匿名内部类调用其父类的无参构造器就可以使用 protected 修饰的构造器方法
System.out.println("bookList3=" + bookList3);


  1. map 对象和 json 字符串 的转换
// 把 map 转换成为 json
String bookMapStr = = gson.toJson(bookMap);
System.out.println("bookMapStr=" + bookMapStr + " 类 型 =" +
bookMapStr.getClass());
// 把 json 转成 map
Map<String, Book> bookMap2 = gson.fromJson(bookMapStr, new
TypeToken<HashMap<String, }.getType());
System.out.println("bookMap2=" + bookMap2 + " 类型=" + bookMap2.getClass());
}

kMapStr, new

TypeToken<HashMap<String, }.getType());

System.out.println(“bookMap2=” + bookMap2 + " 类型=" + bookMap2.getClass());

}


相关文章
|
11天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
23 1
|
5天前
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
11 3
|
10天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
14天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
20天前
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
7天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
6月前
|
JSON 前端开发 Java
Json格式数据解析
Json格式数据解析
122 1
|
3月前
|
JSON Java Android开发
Android 开发者必备秘籍:轻松攻克 JSON 格式数据解析难题,让你的应用更出色!
【8月更文挑战第18天】在Android开发中,解析JSON数据至关重要。JSON以其简洁和易读成为首选的数据交换格式。开发者可通过多种途径解析JSON,如使用内置的`JSONObject`和`JSONArray`类直接操作数据,或借助Google提供的Gson库将JSON自动映射为Java对象。无论哪种方法,正确解析JSON都是实现高效应用的关键,能帮助开发者处理网络请求返回的数据,并将其展示给用户,从而提升应用的功能性和用户体验。
88 1
|
XML JSON 前端开发
ajax请求json和xml数据及对json和xml格式数据的解析
ajax请求json和xml数据及对json和xml格式数据的解析
179 0
|
XML 存储 JSON
JSON&Ajax(语法格式+解析json)
导读模块:发展史: 21世纪初,Douglas Crockford寻找一种简便的数据交换格式, 能够在服务器之间交换数据。当时通用的数据交换语言是XML, 但是Douglas Crockford觉得XML的生成和解析都太麻烦, 所以他提出了一种简化格式,也就是Json。
119 0