数据交换- JSON(教你学会什么是JSON)

简介: 数据交换- JSON(教你学会什么是JSON)

数据交换- JSON

JSON 介绍

1. JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

2. JSON 是轻量级的文本数据交换格式

3. JSON 独立于语言 [解读:即 java 、php、asp.net , go 等都可以使用 JSON]

4. JSON 具有自我描述性,更易理解, 一句话,非常的好用..

JSON 的定义格式

JSON 规则

1) 映射(元素/属性)用冒号 : 表示,"名称":值 , 注意名称是字符串,因此要用双引号引起来

2) 并列的数据之间用逗号 , 分隔。"名称 1":值,"名称 2":值

3) 映射的集合(对象)用大括号 {} 表示。{"名称 1":值,"名称 2":值}

4) 并列数据的集合(数组)用方括号 [] 表示。 [{"名称 1":值,"名称 2":值}, {"名称 1":值,"名称 2":值}]

5) 元素值类型:string, number, object, array, true, false, null

代码示例

1. <!DOCTYPE html>
2. <html lang="en">
3. <head>
4. <meta charset="UTF-8">
5. <title>json 快速入门案例</title>
6. <script type="text/javascript">
7. 
8. window.onload = function () {
9. /*
10.             1. myJson 就是一个json对象
11.             2. 演示如何获取到json对象的各个属性/key
12.              */
13. var myJson = {
14. "key1": "大家好",  // 字符串
15. "key2": 123,    // Number
16. "key3": [1, "hello", 2.3],  // 数组
17. "key4": {"age": 12, "name": "jack"},  //json对象
18. "key5": [      //json数组
19.                     {"k1": 10, "k2": "milan"},
20.                     {"k3": 30, "k4": "smith"},
21. 
22.                 ]
23.             };
24. 
25. //1. 取出key1
26. console.log("key1= ", myJson.key1);
27. //2. 取出key3
28. console.log("key3= ", myJson.key3);
29. //   可以对key3取出的值(Array), 遍历
30. for (var i = 0; i < myJson.key3.length; i++) {
31. console.log("第%i个元素的值= " , i, myJson.key3[i]);
32.             }
33. //3. 取出key4
34. console.log("key4= " , myJson.key4 , " name= " , myJson.key4.name);
35. //4. 取出key5
36. console.log("key5= " , myJson.key5, " k4= ", myJson.key5[1].k4)
37.         }
38. 
39. </script>
40. </head>
41. <body>
42. <h1>json 快速入门案例</h1>
43. </body>
44. </html>

JSON 对象和字符串对象转换

应用案例

1. JSON.stringify(json)功能: 将一个 json 对象转换成为 json 字符串 [简单说名字来源.] Serialize

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

1. <!DOCTYPE html>
2. <html lang="en">
3. <head>
4. <meta charset="UTF-8">
5. <title>JSON对象和字符串对象转换</title>
6. <script type="text/javascript">
7. window.onload = function () {
8. //解读JSON
9. //1.JSON 是一个js的内置对象(build-in),可以直接使用
10. //  console.log("JSON=", JSON);
11. 
12. //演示如何将以json对象->string
13. var jsonPerson = {
14. "name": "jack",
15. "age": 20
16.             }
17. 
18. console.log("jsonPerson=" , jsonPerson);
19. var strPerson = JSON.stringify(jsonPerson);
20. console.log("strPerson= ", strPerson, " strPerson类型= ", typeof strPerson);
21. 
22. //string->json
23. //注意要转成json对象的string 格式必须满足json格式
24. var strDog = "{\"name\":\"小黄狗\", \"age\":2}";
25. var jsonDog = JSON.parse(strDog);
26. console.log("jsonDog= ", jsonDog);
27. 
28.         }
29. </script>
30. </head>
31. <body>
32. <h1>JSON对象和字符串对象转换</h1>
33. 
34. </body>
35. </html>

注意事项和细节

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

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

3、在定义 Json 对象时, 可以使用 ' ' 表示字符串,

比如 var json_person = {"name": "jack", "age": 100};

也可以写成 var json_person = {'name': 'jack', 'age': 100};

4、但是在把原生字符串转成 json 对象时, 必须使用 "", 否则会报错 比如:

var str_dog = "{'name':'小黄狗', 'age': 4}"; 转 json 就会报错

5、JSON.springify(json 对象) 返回的字符串, 都是 "" 表示的字符串, 所以在语法格式正确

的情况下, 是可以重新转成 json

代码演示

1. <!DOCTYPE html>
2. <html lang="en">
3. <head>
4. <meta charset="UTF-8">
5. <title>json和字符串转换的注意事项和细节</title>
6. <script type="text/javascript">
7. window.onload = function () {
8. 
9. var jsonPerson = {
10. "name": "jack",
11. "age": 20
12.             }
13. 
14. //1. JSON.springify(json对象) 会返回对应string, 并不会影响原来json对象
15. //   可以这样理解 java基础 int n = 10; double n2 = (double)n;
16. var strPerson = JSON.stringify(jsonPerson);
17. console.log("jsonPerson=", jsonPerson);
18. 
19. //2. JSON.parse(string) 函数会返回对应的json对象, 并不会影响原来string
20. 
21. var strDog = "{\"name\":\"小黄狗\", \"age\":2}";
22. var jsonDog = JSON.parse(strDog);
23. console.log("strDog=", strDog, " 类型= ", typeof strDog);
24. 
25. //3. 在定义Json对象时, 可以使用 ' ' 表示字符串
26. //   前面的key 可以不用" " 或者 ' '
27. 
28. var jsonPerson2 = {
29. name: 'jack',
30. age: 20
31.             }
32. console.log("jsonPerson2=", jsonPerson2);
33. //4. 但是在把原生字符串转成 json对象时, 必须使用 "", 否则会报错 比如
34. //   工作时,非常容易错
35. var strdog3 = "{\"name\":\"小黄狗~\", \"age\": 4}";
36. JSON.parse(strdog3);
37. 
38. //5. JSON.springify(json对象) 返回的字符串, 都是 "" 表示的字符串
39. var strPerson2 = JSON.stringify(jsonPerson2);
40. var parse = JSON.parse(strPerson2);
41. console.log("parse=", parse);
42. 
43.         }
44. </script>
45. </head>
46. <body>
47. 
48. </body>
49. </html>

JSON 在 java 中使用

说明

1. java 中使用 json,需要引入到第 3 方的包 gson.jar

2. Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。

3. 可以对 JSON 字符串 和 Java 对象相互转换

JSON 在 Java 中应用场景

1. Javabean 对象和 json 字符串 的转换

2. List 对象和 json 字符串 的转换

3. map 对象和 json 字符串

应用场景示意图

应用实例

Book.java

1. public class Book {
2. private Integer id;
3. private String name;
4. 
5. public Book(Integer id, String name) {
6. this.id = id;
7. this.name = name;
8.     }
9. 
10. public Integer getId() {
11. return id;
12.     }
13. 
14. public void setId(Integer id) {
15. this.id = id;
16.     }
17. 
18. public String getName() {
19. return name;
20.     }
21. 
22. public void setName(String name) {
23. this.name = name;
24.     }
25. 
26. @Override
27. public String toString() {
28. return "Book{" +
29. "id=" + id +
30. ", name='" + name + '\'' +
31. '}';
32.     }
33. }

JavaJson.java

TypeToken<List<Book>>() {}如果不知道这个意思请看这个的博客

json字符串 - list对象_list json字符串_尘觉的博客-CSDN博客

1. 
2. import com.google.gson.Gson;
3. import com.google.gson.reflect.TypeToken;
4. 
5. import java.lang.reflect.Type;
6. import java.util.ArrayList;
7. import java.util.HashMap;
8. import java.util.List;
9. import java.util.Map;
10. 
11. public class JavaJson {
12. public static void main(String[] args) {
13. 
14. //创建一个gson对象,做完一个工具对象使用
15. Gson gson = new Gson();
16. 
17. //演示javabean 和 json字符串的转换
18. Book book = new Book(100, "Java");
19. 
20. //1. 演示把javebean -> json字符串
21. String strBook = gson.toJson(book);
22.         System.out.println("strBook=" + strBook);
23. 
24. //2. json字符串->javabean
25. //(1) strBook 就是 json字符串
26. //(2) Book.class 指定将 json字符串转成 Book对象
27. //(3) 底层是反射机制
28. Book book2 = gson.fromJson(strBook, Book.class);
29.         System.out.println("book2=" + book2);
30. 
31. //3. 演示把list对象 -> json字符串
32.         List<Book> bookList = new ArrayList<>();
33.         bookList.add(new Book(200, "天龙八部"));
34.         bookList.add(new Book(300, "三国演义"));
35. String strBookList = gson.toJson(bookList);
36.         System.out.println("strBookList= " + strBookList);
37. 
38. //4. 演示把json字符串 -> list对象
39. Type type = new TypeToken<List<Book>>() {}.getType();
40. 
41.         List<Book> bookList2 = gson.fromJson(strBookList, type);
42.         System.out.println("bookList2= " + bookList2);
43. 
44. 
45. //5, 把map对象->json字符串
46.         Map<String, Book> bookMap = new HashMap<>();
47.         bookMap.put("k1", new Book(400, "射雕英雄传"));
48.         bookMap.put("k2", new Book(500, "西游记"));
49. 
50. String strBookMap = gson.toJson(bookMap);
51.         System.out.println("strBookMap=" + strBookMap);
52. 
53. //6. 把json字符串 -> map对象
54.         Map<String, Book> bookMap2 = gson.fromJson(strBookMap,
55. new TypeToken<Map<String, Book>>() {
56.                 }.getType());
57.         System.out.println("bookMap2=" + bookMap2);
58. 
59.     }
60. }


目录
相关文章
|
6月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
6月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
7月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
6月前
|
JSON 中间件 Java
【GoGin】(3)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法
我们在正常注册中间件时,会打断原有的运行流程,但是你可以在中间件函数内部添加Next()方法,这样可以让原有的运行流程继续执行,当原有的运行流程结束后再回来执行中间件内部的内容。​ c.Writer.WriteHeaderNow()还会写入文本流中。可以看到使用next后,正常执行流程中并没有获得到中间件设置的值。接口还提供了一个可以修改ContentType的方法。判断了传入的状态码是否符合正确的状态码,并返回。在内部封装时,只是标注了不同的render类型。再看一下其他返回的类型;
332 3
|
6月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
433 3
|
7月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
7月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
7月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
7月前
|
机器学习/深度学习 JSON API
干货,淘宝拍立淘按图搜索,淘宝API(json数据返回)
淘宝拍立淘按图搜索API接口基于深度学习与计算机视觉技术,通过解析用户上传的商品图片,在淘宝商品库中实现毫秒级相似商品匹配,并以JSON格式返回商品标题、图片链接、价格、销量、相似度评分等详细信息。

热门文章

最新文章