使用JQ替换JSON中的下划线

2023-11-21

我正在与吴商务用于检索和存储信息的 API。目前我们的设置设计为使用驼峰式大小写而不是下划线。我在用着jq处理我们的信息,但我很好奇如何使用sub(regex, tostring)函数用驼峰命名法替换 JSON 中的下划线?

这是代码示例

"line_items": [
    {
     "id": xxxx,
     "name": "xxxx",
     "sku": "xxxx",
     "product_id": xxxx,
    }

例如,根据我发现的另一个答案,这是有效的:curl https://www.testsite.com/wp-json/wc/v1/orders -u user:pass | jq '.[] | with_entries( if .key | contains("_") then .key |= sub("_";"") else . end)'并删除下划线。

结果是:

"lineitems": [
    {
     "id": xxxx,
     "name": "xxxx",
     "sku": "xxxx",
     "productid": xxxx,
    }

然而,当我尝试curl https://www.testsite.com/wp-json/wc/v1/orders -u user:pass | jq '.[] | with_entries( if .key | contains("_") then .key |= sub("(\\_)([a-z])";"$2\u") else . end)'我没有得到我期望的结果。

预期结果是:

"lineItems": [
    {
     "id": xxxx,
     "name": "xxxx",
     "sku": "xxxx",
     "productId": xxxx,
    }

我没有太多使用经验jq所以我不确定我做错了什么。对于这个问题有更好的解决方案吗?


这是一个 jq 函数,它将把“a_bcd_ef”转换为“aBcdEf”,这似乎就是你想要的:

def camel:
  gsub( "_(?<a>[a-z])"; .a|ascii_upcase);

用法示例:

"a_bcd_ef" | camel

如果您想要一个简单的单行程序来处理来自 STDIN 的 JSON 字符串:

$ jq 'gsub( "_(?<a>[a-z])"; .a|ascii_upcase)'

如果您只想转换第一次出现的“_[a-z]”,那么您当然可以使用sub。等等。

要将此函数应用于对象中的所有键,您可以编写:

with_entries( .key |= camel )

要更改 JSON 实体中所有对象中的所有键,您可以使用walk/1:

walk(if type == "object" then with_entries(.key |= camel) else . end)

如果你的jq没有walk/1那么你可以简单地在调用它之前或者在你的 ~/.jq 文件中包含它的定义(通过谷歌搜索很容易找到)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用JQ替换JSON中的下划线 的相关文章

  • C#中如何从字符串中提取十进制数

    string sentence X10 cats Y20 dogs 40 fish and 1 programmer string digits Regex Split sentence D 对于此代码 我在数字数组中获取这些值 10 20
  • 在哪里可以访问 Gdx.files.local()?

    我有一个预制的 json 文件 我想测试一下 这个 Json 文件将被修改 所以我想读 写 我注意到内部是只读的 所以我想将我的 Json 文件保存在本地存储中 通过 eclipse 或操作系统 windows 8 手动 以便我可以通过 f
  • 如何通过 Json 在 C# 上使用 telegram API?

    我正在查看 telegram API 函数列表 https core telegram org method auth checkPhone https core telegram org method auth checkPhone 并想
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • 如何动态删除嵌套的json键?

    这是示例 json search facets author language value nep count 3 value urd count 1 source value West Bengal State Council of Vo
  • jq:根据 group by 计算嵌套对象值

    Json account 1 cost usage low totalcost 2 01 account 2 cost usage low totalcost 2 25 account 1 cost usage low totalcost
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • 如何在 IntelliJ IDEA 中按 JSON 中的路径搜索?

    我有很长的 JSON 文件 例如 a b c keyC 和路径 a b c 如何使用路径在 JSON 中搜索 转到行 问题类似于如何在 IntelliJ IDEA 中复制 JSON 中的路径 https stackoverflow com
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • Javascript 从 Buffer 到 JSON

    我正在使用 bleno 一个 Node js BLE 包 它使用 Buffer 来发送和接收数据 我将如何获取 Buffer 对象并将其转换为 JSON 这就是我现在所拥有的 bufferToJson buffer toString buf
  • 不支持的 Perl 语法:`(?<`

    我想解析 cmd gpg list keys 的结果以将其显示在浏览器上 cmd输出是这样的 pub rsa3072 2021 08 03 SC expires 2023 08 03 07C47E284765D5593171C18F00B1
  • 在 jQuery 中获取 Json 数据

    没有一个清晰的示例解释如何尽可能简单地拉取 json 数据 我有一个有效的 json 我需要使用 jQuery 检索它 我的 json 输出如下 title blog entries items title Can Members of t
  • 按日期对 JSON 进行排序

    我知道这一定相对简单 但我有一个 JSON 数据集 我想按日期排序 到目前为止 我每次都会遇到问题 现在我将日期存储为this lastUpdated 如果有帮助的话 我可以访问 jquery 但我意识到 sort 是本机 JS 提前致谢
  • toJSON() 和 JSON.Stringify() 之间的区别

    如果您需要读取或克隆模型的所有数据属性 请使用其 toJSON 方法 此方法返回属性的副本作为 对象 尽管有其名称 但不是 JSON 字符串 当 JSON stringify 为 使用 toJSON 方法传递一个对象 它将返回的字符串化 t
  • 具有条件的重复行 pandas dataframe python

    我的数据框有问题 我的 df 是 product power brand product 1 3 x 1500W brand A product 2 2x1000W 1x100W product 3 1x1500W 1x500W brand
  • 快速从 RSS feed 获取 img url

    我希望能够从一段字符串中检索 img url 以下是我尝试检索的 img URL 的示例 p img width 357 height 500 src http images sgcafe net 2015 05 OVA1 357x500
  • 如何强制 Perl 按需重新编译使用“/o”编译的正则表达式?

    技术问题 给定一个正则表达式 my regEx qr whatever myVar oxi Notice o for compile once 强制重新编译的最有效方法是什么一经请求 例如 当我从程序逻辑中知道 myVar值改变 而不下降

随机推荐

  • 如何更改 Material-UI 滑块颜色

    我想更改 Material UI Slider 组件颜色 我尝试更改CSS样式但它不起作用 然后我尝试了中给出的解决方案this问题并应用了此代码 但它不起作用 获取Mui主题 const muiTheme getMuiTheme slid
  • Ruby 中的 Array.prototype.splice

    有朋友问我用Ruby最好 最高效的方式来达到JavaScript的效果spliceRuby 中的方法 这意味着不对数组本身或副本进行迭代 从索引开始处开始 删除长度项并 可选 插入元素 最后在数组中返回删除的项 这是误导性的 请参阅下面的
  • 创建android子项目时出错

    我通过安装了 cordova e Phonegapnpm install g 科尔多瓦 and npm install gphonegap分别 然后我通过创建了一个 HelloWorld 应用程序cordova 创建 HelloWorld
  • Android 4.0 中的 RemoteControlClient 是什么?

    我了解 StackOverflow 的规则 因此提前为提出这样的问题表示歉意主观问题 我尝试过文档但它说的是这样的 RemoteControlClient 允许公开要使用的信息 通过能够显示元数据 艺术品和媒体的远程控制 传输控制按钮 远程
  • 如何从 CefSharp 3 在本机浏览器中打开链接

    我需要在 CefSharp 3 的本机浏览器中打开链接 我需要在 CefSharp 3 的 chromium 浏览器中运行除表单之外的整个应用程序 当我单击表单的链接按钮 例如 注册按钮 它有一个指向注册表单的链接 时 我需要在本机浏览器
  • 带有 Flask 的 pyCUDA 给出 pycuda._driver.LogicError: cuModuleLoadDataEx

    我想在flask服务器 该文件直接使用即可正确运行python3但当使用相应的函数调用时失败flask 这是相关代码 cudaFlask py import pycuda autoinit import pycuda driver as d
  • 删除行后如何消除 rowid 编号中的间隙?

    Table tmp CREATE TABLE if not exists tmp id INTEGER PRIMARY KEY name TEXT NOT NULL 我插入了5行 select rowid id name from tmp
  • 如何检查嵌套引用中是否为 null

    寻找一些最佳实践指导 假设我有一行这样的代码 Color color someOrder Customer LastOrder Product Color 其中 Customer LastOrder Product 和 Color 可以是n
  • RODBC 和 Microsoft SQL Server:截断长字符串

    我正在尝试使用 R RODBC 从 Microsoft SQL Server 数据库查询变量 RODBC 正在将字符串截断为 8000 个字符 原始代码 截断为 255 个字符 根据 ODBC 文档 library RODBC con st
  • 如何使用 Fish Shell 管理我的节点版本

    我昨天开始使用fish作为我的shell 今天我尝试使用yarn和tailwind在终端中运行我的NextJs应用程序 但出现了有关节点版本的错误 我检查了一下 然后发现当前版本是10 19 0 在我的 zsh shell 中 我安装了 N
  • UIAlertController - 将自定义视图添加到操作表

    当我们尝试附加屏幕截图中的图像时 我正在尝试制作如 iOS 上的消息应用程序中所示的操作表 我意识到在新的 UIAlertController 中 我们无法容纳任何自定义视图 我有什么办法可以做到这一点吗 我的代码看起来很标准 let al
  • Spark 中的 Hadoop DistributedCache 功能

    我正在寻找类似于Spark中Hadoop的分布式缓存的功能 我需要一个相对较小的数据文件 带有一些索引值 出现在所有节点中 以便进行一些计算 有什么方法可以在 Spark 中实现这一点吗 到目前为止 我的解决方法包括将索引文件作为正常处理进
  • 在 django admin 中创建新的自定义视图

    抱歉 我还是 django 新手 我想在管理站点上创建与我的模型无关的自定义视图 我已阅读文档 https docs djangoproject com en 2 0 ref contrib admin django contrib adm
  • 获取 numpy 数组中元素对的总和

    我有一个数组 t 4 5 0 7 1 6 8 3 2 9 这只是 0 9 范围内的随机洗牌 我需要计算这个 t2 9 5 7 8 7 14 11 5 11 13 这就是 t2 t 0 t 1 t 1 t 2 t 2 t 3 t 3 t 4
  • 使用 ios 使用 swift 进行本地通知 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我是 swift 的新手 我不知道如何实现本地通知 我尝试了一些代码 但它并不完全有效 所以任何人都可以帮助实现本地通知iOS using swift 在这里我分享一个例子 注册
  • 使用宏将项目附加到数组(C 语言)

    我有一个数组 C语言 应在编译时初始化 例如 DECLARE CMD f1 arg DECLARE CMD f2 arg DECLARE CMD 是从多个文件调用的 我希望对此进行预处理 my func type my funcs f1 f
  • 如何在不使用 的情况下制作带有闪烁光标和可编辑文本的 div?

    我需要制作一个 div 图层 这样当您单击它时 您的光标就会闪烁 您可以插入 删除文本 就像
  • 如何在 C# 中为 Windows-7 设置主显示器

    我相信我需要一个在 SetDisplayConfig 中执行此操作的示例 我的 Windows 7 系统有两个显示器 当我的程序处于一种模式时 第一台显示器必须打开并且是主要显示器 第二台显示器必须关闭 在其他模式下 反之亦然 第一个显示器
  • 如何列出目录中的所有文件?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在Python中列出目录中的所有文件并将它们添加到list os listdir 返回目录中的所有内容 包括两者files and 目录 os path s
  • 使用JQ替换JSON中的下划线

    我正在与吴商务用于检索和存储信息的 API 目前我们的设置设计为使用驼峰式大小写而不是下划线 我在用着jq处理我们的信息 但我很好奇如何使用sub regex tostring 函数用驼峰命名法替换 JSON 中的下划线 这是代码示例 li