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 的架构,使得它们易于理解和使用。

  1. 资源(Resources)

    • 在 REST 中,一切都被视为资源。资源可以是任何实体,例如用户、产品、订单等。
    • 每个资源都有一个唯一的标识符(通常是 URL)。例如,/users/123 可以表示 ID 为 123 的用户。
  2. HTTP 方法

    • GET:用于检索资源。例如,GET /users/123 获取 ID 为 123 的用户信息。
    • POST:用于创建新资源。例如,POST /users 创建一个新的用户。
    • PUT:用于更新现有资源。例如,PUT /users/123 更新 ID 为 123 的用户信息。
    • DELETE:用于删除资源。例如,DELETE /users/123 删除 ID 为 123 的用户。
  3. 状态码(Status Codes)

    • REST API 使用 HTTP 状态码来表示请求的结果。
      • 200 OK:请求成功。
      • 201 Created:资源已成功创建。
      • 400 Bad Request:请求无效或格式错误。
      • 404 Not Found:请求的资源不存在。
      • 500 Internal Server Error:服务器内部错误。
  4. 无状态性(Statelessness)

  5. REST API 是无状态的,这意味着每个请求都必须包含处理该请求所需的所有信息。服务器不会存储客户端的状态信息,这有助于提高可扩展性和可靠性。
  6. 示例

    假设我们有一个简单的在线书店 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的例子:

  1. 美化JSON输出:将curl的结果通过管道传递给jq进行格式化。

    curl http://localhost:11434/api/tags | jq .
  2. 提取特定字段:假设你只对模型的名字和大小感兴趣

    curl http://localhost:11434/api/tags | jq '.models[] | {name, size}'
  3. 过滤数据:仅显示满足特定条件的数据,如大小大于某个值的模型。

    curl http://localhost:11434/api/tags | jq '.models[] | select(.size > 5000000000) | {name, size}'

通过结合使用curljq,你可以更高效地与API交互,并轻松处理返回的JSON数据。这在开发和调试过程中特别有用。

下面的第一个是直接拿回来的json数据,没有使用任何工具进行处理

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/967682.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django在终端创建项目(pycharm Windows)

1.选择目录 选择或新建一个文件夹,作为项目保存的地方 2.右键在终端打开 3.确定django-admin.exe安装位置 找到自己安装django时,django-admin.exe安装的位置,例如 4.运行命令 使用django-admin.exe的绝对路径,在刚才打开的终端…

四次挥手详解

文章目录 一、四次挥手各状态FIN_WAIT_1CLOSE_WAITFIN_WAIT_2LAST_ACKTIME_WAITCLOSE 二、双方同时调用close(),FIN_WAIT_1状态后进入CLOSING状态CLOSING状态 三、TIME_WAIT状态详解(1) TIME_WAIT状态下的2MSL是什么MSL (报文最大生存时间)为…

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…

MybatisPlus常用增删改查

记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL…

支付宝安全发全套解决方案

产品价值 ● 通过支付宝的资金能力,让服务商机构通过信息流驱动资金流,在不碰触客户企业资金的同时,为客户企业完成转账。账目清晰,无合规和资质风险。 ● 为服务商提供全链路的资金流动明细信息,服务商可以将这些信息…

PHP盲盒商城系统源码 晒图+免签+短信验证+在线回收 thinkphp框架

源码介绍 PHP盲盒商城系统源码 晒图免签短信验证在线回收 thinkphp框架 源码前端uniapp开发,可以打包成APP(非H5封壳)H5,接其他平台支付通道,前后端全开源 H5盲盒首页可以直接开盒新UI 修复优化BUG,修复无…

Redis企业开发实战(四)——点评项目之分布式锁

目录 一、分布式锁介绍 (一)分布式锁基本介绍 (二)分布式锁满足的条件 (三)常见的分布式锁 1.Mysql 2.Redis 3.Zookeeper 二、Redis分布式锁详解 (一)Redis分布式锁的实现核心思路 获取锁: 释放锁: (二)基于Redis实现分布式锁初级版本 1.…

【HarmonyOS Next 自定义可拖拽image】

效果图: 代码: import display from "ohos.display" import { AppUtil } from "pura/harmony-utils"/*** 自定义可拖拽图标组件*/ Component export default struct DraggableImage {imageResource?: ResourceimageHeight: numbe…

Jmeter快速实操入门

以下操作需要提前安装了JDK(JDK版本要Java8),并且配置了环境变量。 1、下载Jmeter,下载连接。选择zip版本,解压即可。 2、解压后的文件目录如下。 3、进入bin文件夹,双击ApacheJMeter,运行Jmeter。 4、在测…

学习 PostgreSQL 流复制

PostgreSQL 流复制 PostgreSQL数据库异常中止后,数据库刚重启时,会重放停机前最后一个checkpoint点之后的 WAL日志,在把数据库恢复到停机的状态后,自动进入正常的状态,可以接收其他用户的查询和修改。 想象另一个场景…

macbook2015升级最新MacOS 白苹果变黑苹果

原帖:https://www.bilibili.com/video/BV13V411c7xz/MAC OS系统发布了最新的Sonoma,超酷的动效锁屏壁纸,多样性的桌面小组件,但是也阉割了很多老款机型的升级权利,所以我们可以逆向操作,依旧把老款MAC设备强…

2025年最新版武书连SCD期刊(中国科学引文数据库)来源期刊已更新,可下载PDF版!需要的作者进来了解~

2025年最新版武书连SCD期刊(中国科学引文数据库)来源期刊已更新! 官网是不提供免费查询的。小编给大家两个路径,无需下载PDF,随时随地都能查25版SCD目录。 路径一:中州期刊联盟官网,25版SCD目…

deepseek大模型集成到idea

1 下载插件 安装CodeGPT打开 IntelliJ IDEA,鼠标点击左上角导航栏,File --> Setting 2 申请API key 3 配置deepseek 在 Settings 界面中的搜索框中,搜索 CodeGPT,路径 Tools --> CodeGPT --> Providers --> 如下一…

本地部署DeepSeek,并使用UI界面进行快速交互

一.需要本地部署的原因 1.我们在deepseek的官网界面进行交互时,经常会出现如下问题,不能正常交互,很是困扰: 2.本地部署的好处 就是能够很流畅的与deepseek进行交互;也有缺点,现在官网交互的版本更高一点…

8.flask+websocket

http是短连接,无状态的。 websocket是长连接,有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…

深度学习之神经网络框架搭建及模型优化

神经网络框架搭建及模型优化 目录 神经网络框架搭建及模型优化1 数据及配置1.1 配置1.2 数据1.3 函数导入1.4 数据函数1.5 数据打包 2 神经网络框架搭建2.1 框架确认2.2 函数搭建2.3 框架上传 3 模型优化3.1 函数理解3.2 训练模型和测试模型代码 4 最终代码测试4.1 SGD优化算法…

【Matlab优化算法-第15期】基于NSGA-II算法的铁路物流园区功能区布局优化

基于NSGA-II算法的铁路物流园区功能区布局优化 一、前言 铁路物流园区的合理布局对于提高物流效率、降低运营成本具有重要意义。随着铁路物流的快速发展,传统的铁路货场需要升级为综合物流园区,以满足多式联运和综合物流服务的需求。本文将介绍一种基于…

手写一个C++ Android Binder服务及源码分析

手写一个C Android Binder服务及源码分析 前言一、 基于C语言编写Android Binder跨进程通信Demo总结及改进二、C语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.h代码实现3.2 BnHelloService.c…

WebSocket connection failed 解决

WebSocket connection failed 解决 前言 这里如果是新手小白不知道 WebSocket 是什么的? 怎么使用的?或者想深入了解的 那可以 点击这里 几分钟带你快速了解并使用,已经一些进阶讲解; WebSocket,多应用于需要双向数据…

Python截图轻量化工具

一、兼容局限性 这是用Python做的截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换cty…