首页 > 解决方案 > 使用 cURL 编辑要点:“解析 JSON 的问题”,

问题描述

#!/bin/bash

curl -v \

  --request PATCH \
  --data "$(
    printf '{"files": {"somefile.json": {"content": " {"field": "value"} "}}}' \
    )" \
  --user x:x \
  https://api.github.com/gists/x

尝试添加 --header "Content-Type: application/json",没有运气。

我使用它是因为内容实际上是命令输出,但现在我正在测试基础知识,因为这不是工作。

我相信这与 bash 中的双引号转义有关,尝试了几个小时但没有运气。这是一场噩梦。

欢迎任何提示。谢谢。

标签: bash

解决方案


看起来你的引号太多了。如果您希望“内容”元素的值是一个对象,那么不要这样:

"content": " {"field": "value"} "

尝试这个:

"content": {"field": "value"}

如果你希望它是一个字符串,那么试试这个:

"content": " {\"field\": \"value\"} "

推荐阅读