JSON格式简介

简介: JSON格式简介

最近自己在做一个基于ESP8266和STM32的桌面天气时钟,需要使用到JSON解析,所以系统学习一下JSON,这篇文章我们先来了解一下JSON的基本格式。

640.jpg


啥是JSON

JSON: JavaScript 对象表示法( JavaScript Object Notation) 是一种轻量级的数据交换格式。 它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式, 但是也使用了类似于C语言家族的习惯( 包括C、 C++、 C#、 Java、 JavaScript、 Perl、 Python等) 。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写, 同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON 解析器和 JSON 库支持许多不同的编程语言。 JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。 由于这种相似性, 无需解析器, JavaScript 程序能够使用内建的 eval() 函数, 用 JSON 数据来生成原生的 JavaScript 对象。JSON 是存储和交换文本信息的语法。 类似 XML。 JSON 比 XML 更小、 更快, 更易解析。JSON 具有自我描述性, 语法简洁, 易于理解。


JSON说白了,就是一串字符串只不过元素会使用特定的符号标注,很多API接口的返回信息都是JSON格式的。


{} 双括号表示对象。


"" 双引号内是属性或值。


: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个josn数组或json对象)


[] 中括号表示数组,可以包含多个JSON对象


所以 {"name": "Michael"} 可以理解为是一个json对象,它包含了一个键值对,对象也可以包含多个键/值对。


一个简单的JSON对象

{
    "name": "Andy",  
    "age": 20     
}


这个JSON对象包含两个键值对。


一个简单的JSON数组

[{
    "name": "Michael"
}, {
    "name": "Jerry"
}]


包含了两个JSON对象的JSON数组。


一个稍微复杂点的JSON对象

{
    "success": "1",
    "result": {
        "timestamp": "1542456793",
        "datetime_1": "2018-11-17 20:13:13",
        "datetime_2": "2018年11月17日 20时13分13秒",
        "week_1": "6",
        "week_2": "星期六",
        "week_3": "周六",
        "week_4": "Saturday"
    }
}


这是一个免费的用来获取北京标准时间的API接口地址,返回值是JSON字符串。这个JSON对象共包含两个键值对,一个键success,对应的值是一个字符串,另一个键result,对应的值是一个JSON对象。所以可以看出,键的值,可以是字符串,数字,也可以是另一个JSON对象或JSON数组。


一个很复杂的JSON字符串

{
    "results": [{
        "location": {       
            "id": "WS10730EM8EV",
            "name": "深圳",
            "country": "CN",
            "path": "深圳,深圳,广东,中国",
            "timezone": "Asia/Shanghai",
            "timezone_offset": "+08:00"
        },
        "now": {
            "text": "多云",
            "code": "4",
            "temperature": "23"
        },
        "last_update": "2018-11-17T20:05:00+08:00"
    }]
}


这是心知天气获取3天天气预报返回的JSON格式信息。就包含了一个键值对,键是 results,值是一个数组。


下一篇文章将介绍如何使用cJSON库,来完成JSON的解析,来得到我们想要的值。

在线JSON格式校验工具:

http://www.bejson.com/


常用的API数据接口_k780数据:

http://www.k780.com/api


各类无次数限制的免费API接口]:

https://www.zhihu.com/question/32225726/answer/157364969


获取北京标准时间:

http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json

目录
相关文章
|
JSON 前端开发 应用服务中间件
配置Nginx根据IP地址进行流量限制以及返回JSON格式数据的方案
最后,记得在任何生产环境部署之前,进行透彻测试以确保一切运转如预期。遵循这些战术,守卫你的网络城堡不再是难题。
476 3
|
JSON 人工智能 算法
探索大型语言模型LLM推理全阶段的JSON格式输出限制方法
本篇文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
2400 48
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
3705 52
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
621 3
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
872 1
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
788 1
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
945 0