I need to read these bash variables into my JSON string and I am not familiar with bash. any help is appreciated.

#!/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 

推荐答案

如果您事先不知道变量的内容是否被正确转义以包含在JSON中,那么最好使用像jq这样的程序来生成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相关问答推荐

从Json响应中为需要每个值的Post请求提取多个值

当有2个嵌套数组时展平复杂的JSON

组合不同属性的Jolt Spec

删除 JOLT 中的方括号

Powershell解析JSON文件中的键或值

Delphi 11.3无法从变体创建/添加JSON

派生类的属性没有得到价值

嵌套 JSON 到 CSV(多级)

jq:用列表包装所有第一级原子值

N1QL 聚合查询 Couchbase

Google GCM 服务器返回未经授权的错误 401

如何从 rails 中的 respond_to 方法生成 json?

使用 c# 通用地展平 Json

jQuery.getJSON 和 jQuery.parseJSON 返回 [object Object]?

如何自动修复无效的 JSON 字符串?

JSON 格式的 Amazon S3 响应?

JSON 和 BSON 哪个更轻量级?

来自 Gson 的 JSON 字符串:删除双引号

Backbone.js 模型与集合

从 Ruby 中的 JSON 文件解析并从嵌套哈希中提取数字