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

使用Bash变量构建JSON字符串

衡子安
2023-03-14
问题内容

我需要将这些bash变量读入JSON字符串,而我对bash并不熟悉。任何帮助表示赞赏。

#!/bin/sh

BUCKET_NAME=testbucket
OBJECT_NAME=testworkflow-2.0.1.jar
TARGET_LOCATION=/opt/test/testworkflow-2.0.1.jar

JSON_STRING='{"bucketname":"$BUCKET_NAME"","objectname":"$OBJECT_NAME","targetlocation":"$TARGET_LOCATION"}'


echo $JSON_STRING

问题答案:

jq如果您不提前知道变量的内容是否正确转义以包含在JSON中,则最好使用类似生成JSON 的程序。否则,您将因麻烦而最终使用无效的JSON。

BUCKET_NAME=testbucket
OBJECT_NAME=testworkflow-2.0.1.jar
TARGET_LOCATION=/opt/test/testworkflow-2.0.1.jar

JSON_STRING=$( jq -n \
                  --arg bn "$BUCKET_NAME" \
                  --arg on "$OBJECT_NAME" \
                  --arg tl "$TARGET_LOCATION" \
                  '{bucketname: $bn, objectname: $on, targetlocation: $tl}' )


 类似资料:
  • 问题内容: 我正在尝试使用通过函数传递的变量访问JSON: 显然,这是行不通的,因为“类别”是我通过函数传递的内容,而不是属性的真实名称,但是我一直尝试尝试不同的可能性。提前致谢! 问题答案: 在JS中,是的同义词。 另外,您正在处理的是JavaScript对象,而不是JSON(尽管它可能 起源于 JSON ) *对于遇到这种情况并使用ES6的用户进行 *更新 ,现在可以在分配过程中使用变量: 作

  • 问题内容: 如果我有一个字符串变量,谁的值是如何使用空格作为分隔符来对此进行标记?我会用吗? 问题答案: 使用外壳程序对未加引号的变量的自动标记化: 如果要更改定界符,则可以设置变量,该变量代表内部字段分隔符。的默认值是(空格,制表,换行)。 (请注意,在第二个示例中,我在第二行周围添加了括号。这创建了一个子shell,因此对的更改不会持续。您通常不想永久更改,因为它可能会对毫无疑问的shell命

  • 问题内容: 假设我想使以下内容可重复使用: 我可能会做这样的事情: 使用字符串文字,这很容易。但是,如果我想对正则表达式更加棘手,该怎么办?例如,说我要替换, 而是 。本能地,我会尝试通过以下方式扩展上述内容: 这似乎不起作用。我的猜测是它认为是字符串文字,而不是代表字符串的变量。是否可以使用字符串变量即时创建JavaScript正则表达式?如果可能的话,这样的事情会很棒: 问题答案: 还有哪里是

  • 问题内容: 是否有快速功能将通过接收到的JSON对象转换为字符串变量转储(用于跟踪/调试)? 问题答案: 是的,可以在此处找到,它包含在Firefox 3.5.4及更高版本中。 JSON字符串反方向,将JavaScript数据结构转换为JSON文本。 JSON不支持循环数据结构,因此请注意不要将循环结构提供给JSON字符串化器。 https://web.archive.org/web/201006

  • 问题内容: 我有一个分配了字符串的变量,我想根据该字符串定义一个新变量。 问题答案: 你可以使用exec:

  • 我必须在Groovy中创建这个JSON文件。我尝试了很多事情(/)失败。 这是为了向Slack发布Jenkins构建消息。