当前位置: 首页 > 面试题库 >

将JSON数组转换为bash字符串数组

易弘亮
2023-03-14
问题内容

如何将对象的json数组解析为具有这些对象作为字符串的bash数组?

我正在尝试执行以下操作:

CONVO=$(get_json_array | jq '.[]')
for CONVERSATION in $CONVERSATIONS
do
    echo "${CONVERSATION}"
done

但是回声会打印出线条,而不是特定的对象。对象的格式为:

{ "key1":"value1", "key2": "value2"}

我需要将其传递给api:

api_call '{ "key1":"value1", "key2": "value2"}'

问题答案:

问题在于,jq仍然仅输出文本行; 您不必将每个数组元素都保留为一个单元。
就是说,只要换行符在任何对象中都不是有效字符,
您仍然可以在单独的行中输出每个对象。

get_json_array | jq -c '.[]' | while read object; do
    api_call "$object"
done

当然,在这种假设下,您可以使用4中的readarray命令bash构建数组:

readarray -t conversations < <(get_json_array | jq -c '.[]')
for conversion in "${conversations[@]}"; do
    api_call "$conversation"
done


 类似资料:
  • 问题内容: 我具有来自Web服务的以下JSON字符串,并且正在尝试将其转换为 我在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,您将获得JSONObject,因此请更改以下行: 具有以下内容: 之后

  • 问题内容: 我有一个Json String,我想将其转换为Java中的数组。 就我所知,我什至不确定是否必须先创建一个对象。 我需要做的eventuallay是将其附加到android应用程序中的ArrayAdapter上。 谢谢 问题答案: 像这样:

  • 问题内容: 我从网络服务获取以下JSON字符串,并尝试将其转换为 我String在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,你将获得JSONObject,因此请更改以下行: 具有以下内容: 之后

  • 问题内容: 我有以下JSON字符串,它是一个Objective C数组,然后编码为JSON: 我想将其转换为常规的PHP数组。我已经尝试了很多东西,但是似乎都没有用: 有任何想法吗? 编辑: 我仍然无法正常工作。 我需要这样做: 但是我想我需要在$ decodedEmails周围加引号才能起作用。如何在$ decodeEmails字符串周围添加引号? 问题答案: 您应该引用您的字符串,它可以正常工

  • 问题内容: 我已经在DOM中植入了一个数组数组,以便以后可以重用它以传输到服务器: 如果我想将其转换回Javascript数组,该怎么做? 问题答案: var obj = $.parseJSON(‘[[“1”,”aaaaaa”,”1”],[“2”,”bbbbbbb”,”2”],[“3”,”ccccccc”,”3”]]’) 假设由于标签而可以使用jquery。

  • 我有一个Json字符串,我正试图将其转换为Java中的数组。 就我所知,我甚至不确定是否必须先创建一个对象。 谢谢