json格式,curl命令,及轻量化处理工具
一. JSON格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几乎所有的现代编程语言都支持JSON编码和解码。
一个简单的JSON对象示例:
{"name": "John","age": 30,"isStudent": false,"courses": ["Math", "Science"],"address": {"city": "New York","zipcode": "10001"}
}
二. Curl命令
2.1 Curl
Curl 是一个非常强大的命令行工具,用于从服务器传输数据或向服务器传输数据。它支持多种协议,包括HTTP、HTTPS、FTP等。Curl常用于测试RESTful API,获取网页内容,上传文件等。
基本语法:
curl [options] [URL]
例如,获取某个网站的内容:
curl http://example.com
当你需要与API交互时,比如获取JSON格式的数据,你可以这样做:
curl -X GET http://localhost:11434/api/tags
这里的-X选项指定请求的方法(GET、POST等),默认为GET。
curl这里可以展开说一下,与API交互就比如说常用的REST API
2.2 REST API
REST(Representational State Transfer)API 是一种设计风格,用于构建网络服务。它利用标准的 HTTP 方法(如 GET、POST、PUT、DELETE 等)来操作资源,并通过 URL 来标识这些资源。REST API 的设计理念是基于 Web 的架构,使得它们易于理解和使用。
-
资源(Resources):
- 在 REST 中,一切都被视为资源。资源可以是任何实体,例如用户、产品、订单等。
- 每个资源都有一个唯一的标识符(通常是 URL)。例如,
/users/123可以表示 ID 为 123 的用户。
-
HTTP 方法:
- GET:用于检索资源。例如,
GET /users/123获取 ID 为 123 的用户信息。 - POST:用于创建新资源。例如,
POST /users创建一个新的用户。 - PUT:用于更新现有资源。例如,
PUT /users/123更新 ID 为 123 的用户信息。 - DELETE:用于删除资源。例如,
DELETE /users/123删除 ID 为 123 的用户。
- GET:用于检索资源。例如,
-
状态码(Status Codes):
- REST API 使用 HTTP 状态码来表示请求的结果。
200 OK:请求成功。201 Created:资源已成功创建。400 Bad Request:请求无效或格式错误。404 Not Found:请求的资源不存在。500 Internal Server Error:服务器内部错误。
- REST API 使用 HTTP 状态码来表示请求的结果。
-
无状态性(Statelessness):
- REST API 是无状态的,这意味着每个请求都必须包含处理该请求所需的所有信息。服务器不会存储客户端的状态信息,这有助于提高可扩展性和可靠性。
-
示例
假设我们有一个简单的在线书店 API,以下是一些示例请求:
-
获取所有书籍列表:
GET /books -
获取特定书籍详情:
GET /books/123 -
创建新书籍:
POST /books {"title": "The Great Gatsby","author": "F. Scott Fitzgerald","price": 10.99 } -
更新书籍信息:
PUT /books/123 {"title": "The Great Gatsby","author": "F. Scott Fitzgerald","price": 12.99 } -
删除书籍:
DELETE /books/123
-
这些API确实很好,但是不能直接在Terminal应用这些API,所以需要像Curl这样的工具
1. GET 请求
获取资源数据。
curl -X GET http://localhost:11434/api/tags
2. POST 请求
创建新资源。
curl -X POST http://localhost:11434/api/users \
-H "Content-Type: application/json" \
-d '{"name": "Alice", "age": 30}'
3. PUT 请求
更新现有资源。
curl -X PUT http://localhost:11434/api/users/123 \
-H "Content-Type: application/json" \
-d '{"name": "Alice", "age": 31}'
4. DELETE 请求
删除资源。
curl -X DELETE http://localhost:11434/api/users/123
三. 轻量化处理工具:jq
jq 是一个命令行工具,用于处理JSON数据。它可以用来解析、过滤、映射和转换JSON数据。对于需要快速查看或处理JSON数据的情况,jq是一个非常好的选择。
安装jq(根据你的操作系统):
sudo apt-get install jq
使用jq的例子:
-
美化JSON输出:将
curl的结果通过管道传递给jq进行格式化。curl http://localhost:11434/api/tags | jq . -
提取特定字段:假设你只对模型的名字和大小感兴趣
curl http://localhost:11434/api/tags | jq '.models[] | {name, size}' -
过滤数据:仅显示满足特定条件的数据,如大小大于某个值的模型。
curl http://localhost:11434/api/tags | jq '.models[] | select(.size > 5000000000) | {name, size}'
通过结合使用curl和jq,你可以更高效地与API交互,并轻松处理返回的JSON数据。这在开发和调试过程中特别有用。
下面的第一个是直接拿回来的json数据,没有使用任何工具进行处理

这一个使用了jq工具进行处理,具有了明显的层次感

提取models数组,只关心数组中的name和model两个关键字

相关文章:
json格式,curl命令,及轻量化处理工具
一. JSON格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几…...
Postman面试问题
在 API 测试领域,Postman 已成为最流行的工具之一。无论是功能测试、自动化测试,还是接口调试,Postman 都扮演着重要角色。而在软件测试面试中,Postman 相关问题更是高频考点。如果你正在准备面试,赶紧看看这些Postman…...
【JVM详解四】执行引擎
一、概述 Java程序运行时,JVM会加载.class字节码文件,但是字节码并不能直接运行在操作系统之上,而JVM中的执行引擎就是负责将字节码转化为对应平台的机器码让CPU运行的组件。 执行引擎是JVM核心的组成部分之一。可以把JVM架构分成三部分&am…...
esp32 udp 客户端 广播
esp32 udp 客户端 广播 #include "bsp_udpc.h"// #include "com_config.h" // #include "com_xqueue.h"#include "bsp_udpc.h" #define TAG "bsp_udpc"#include <string.h> #include <sys/param.h> #include &q…...
nginx日志存储access日志和error保留180天,每晚把前一天的日志文件压缩成tar.gz
logrotate日志分割时,rotate参数是必须要加的 在logrotate的配置文件中,rotate参数用于指定保留的旧日志文件数量。如果不配置rotate参数,默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除 l…...
【Java】多线程和高并发编程(四):阻塞队列(上)基础概念、ArrayBlockingQueue
文章目录 四、阻塞队列1、基础概念1.1 生产者消费者概念1.2 JUC阻塞队列的存取方法 2、ArrayBlockingQueue2.1 ArrayBlockingQueue的基本使用2.2 生产者方法实现原理2.2.1 ArrayBlockingQueue的常见属性2.2.2 add方法实现2.2.3 offer方法实现2.2.4 offer(time,unit)方法2.2.5 p…...
C#控件开发6—旋转按钮
按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关…...
在亚马逊云科技上云原生部署DeepSeek-R1模型(下)
在本系列的上篇中,我们介绍了如何通过Amazon Bedrock部署并测试使用了DeepSeek模型。在接下来的下篇中小李哥将继续介绍,如何利用亚马逊的AI模型训练平台SageMaker AI中的,Amazon Sagemaker JumpStart通过脚本轻松一键式部署DeepSeek预训练模…...
C# COM 组件在.NET 平台上的编程介绍
.NET学习资料 .NET学习资料 .NET学习资料 一、COM 组件简介 COM(Component Object Model)即组件对象模型,是一种微软提出的软件组件技术,它允许不同的软件模块在二进制层面进行交互。COM 组件可以用多种编程语言开发࿰…...
火热的大模型: AIGC架构解析
文章目录 一、背景介绍二、架构描述数据层模型层(MaaS)服务层(PaaS)基础设施层(IaaS)应用层 三、架构分析四、应用场景与价值4.1 典型场景4.2 价值体现 五、总结 一、背景介绍 火热的大模型,每…...
Android LifecycleOwner 闪退,java 继承、多态特性!
1. 闪退 同意隐私政策后,启动进入游戏 Activity 闪退 getLifecycle NullPointerException 空指针异常 FATAL EXCEPTION: main Process: com.primer.aa.gg, PID: 15722 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.primer.aa.…...
PHP 完整表单实例
PHP 完整表单实例 引言 表单是网站与用户交互的重要方式,尤其是在收集用户输入数据时。PHP 作为一种流行的服务器端脚本语言,在处理表单数据方面具有强大的功能。本文将提供一个完整的 PHP 表单实例,涵盖表单创建、数据收集、验证和存储等关…...
深度学习学习笔记(32周)
目录 摘要 abstract 1 Mask R-CNN 2 RoI Align 2.1 RoIPool实验 2.2 RoIAlign实验 3 Mask Branch(FCN) 4 其他细节 4.1 Mask R-CNN损失 4.2 Mask分支损失 4.3 Mask Branch预测使用 摘要 Mask R-CNN是2017年发表的文章,一作是何恺明大神,没错就…...
Web3 开发者的机遇与挑战:技术趋势与职业发展
随着 Web3 技术的迅速发展,互联网的未来正朝着去中心化、用户主权、隐私保护等方向演进。作为 Web3 生态的核心力量,Web3 开发者在推动这一变革中扮演着至关重要的角色。无论是在区块链技术、智能合约开发、去中心化应用(DApp)的构…...
探索robots.txt:网站管理者的搜索引擎指南
在数字时代,网站如同企业的在线名片,其内容和结构对搜索引擎的可见性至关重要。而在这背后,有一个默默工作的文件——robots.txt,它扮演着搜索引擎与网站之间沟通桥梁的角色。本文将深入探讨robots.txt的功能、编写方法及其在现代…...
LM Studio本地调用模型的方法
首先需要下载LM Studio,(LM Studio - Discover, download, and run local LLMs)安装好后,需要对index.js文件进行修改,主要是对相关源hugging face的地址修改。 以macOS为例: cd /Applications/LM\ Studi…...
防火墙安全综合实验
防火墙安全综合实验 一、拓扑信息 二、需求及配置 实验步骤 需求一:根据下表,完成相关配置 设备接口VLAN接口类型SW2GE0/0/2VLAN 10AccessGE0/0/3VLAN 20AccessGE0/0/1VLAN List:10 20Trunk 1、创建vlan10和vlan20 2、将接口划分到对应…...
uniapp 编译生成鸿蒙正式app步骤
1,在最新版本DevEco-Studio工具新建一个空项目并生成p12和csr文件(构建-生成私钥和证书请求文件) 2,华为开发者平台 根据上面生成的csr文件新增cer和p7b文件,分发布和测试 3,在最新版本DevEco-Studio工具 文…...
【进程与线程】如何编写一个守护进程
如何编写一个守护进程。我们首先需要理解守护进程是什么。守护进程是在后台运行的进程,通常没有控制终端,用于执行系统任务,比如服务器或者定时任务。 用户可能想创建一个长期运行的服务,比如Web服务器或者日志监控程序。 首先&a…...
ubuntu安装VMware报错/dev/vmmon加载失败
ubuntu安装VMware报错/dev/vmmon加载失败,解决步骤如下: step1:为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
