我在azure-pipelines.yaml文件中包含了以下环境变量:
- name: myVariable
value: '{"key1":"value1","key2":"value2"}'
问题在于管道传递沿着这个变量的方式。当回显时,它看起来像这样:key1:value1 key2:value2
,由于我的应用程序需要一个JSON字符串,这会抛出JSONDecodeError(“Extra data”,s,end)。
我尝试使用转义字符对变量进行不同的格式设置,如下所示:\{\"key1\":\"value1\",\"key2\":\"value2\"\}
这就产生了我所期望的这个回显变量:{"key1":"value1","key2":"value2"}
但是我的应用程序代码抛出了这个错误JSONDecodeError:属性名称应用双引号括起来。我添加了双引号如下:"\{\"key1\":\"value1\",\"key1\":\"value1\"\}"
但随后收到以下错误:当分析一个带引号的标量时,发现未知的转义字符。
管道文件似乎不喜欢变量的格式。我想知道我格式化变量的方式是否有问题。我想让变量以我上面描述的方式传递,但是如果其他方法都失败了,我可以用一种更合适的格式传递它,并让我的应用程序代码解析它。会很感激任何想法,谢谢。
2条答案
按热度按时间rhfm7lfc1#
不知道你的应用程序如何调用JSON。检查变量doc:
变量总是字符串。如果你想使用类型化的值,那么你应该使用参数。
你可以使用convertToJson表达式,它接受一个复杂的对象并将其输出为JSON。
产出:
如果你用它作为变量:
输出量:
您可以检查使用参数或变量进行定义,并在应用程序中调用
${MY_JSON}
。ulydmbyx2#
你试过这个吗,它只是遵循你逃避一切的思维方式?
\"\{\"key1\":\"value1\",\"key2\":\"value2\"\}\"
也是一个好主意,分享你想要消化这个JSON的任务类型。