如何从此 JSON 响应中获取以下值?
How do I get the following value out of this JSON response?
基本上,我有一个使用 Powershell 从 DynamoDB 检索到的值,并且得到了 JSON 格式的一行,如下所示
function gettagsfromdynamo() {
$table_name = "table_name"
$dbkey = '{"ReleaseId":{"AttributeValueList":[ {"N":"1"} ],"ComparisonOperator": "EQ"}}' | ConvertTo-Json -Compress
$dbvalue = aws dynamodb query --table-name $table_name --key-conditions $dbkey --region $region
$latest_tags = $dbvalue
$latest_tags
}
$db_tags = gettagsfromdynamo
这就是db_tags的样子
{
"Items": [
{
"Comment": {
"S": "The first PC release."
},
"Product": {
"S": "PC"
},
"ReleaseId": {
"N": "1"
},
"CreatedOn": {
"S": "12/14/2020 15:23:32"
},
"Tags": {
"S": "{\n \"software1\": \"software1.zip\",\n \"software2\": \"software2.zip\",\n \"software3\":\n [\n \"software3.zip\",\n \"software4.zip\",\n \"software5.zip\"\n ],\n \" data1 \": \"2020_NA\",\n \" 2020_EU \": \"20201_EU\",\n \" 2020_WW \": \"2021_WW\",\n \" dataversions\":\n [\n \"2020\",\n \"2019\",\n \"2018\",\n \"2017"\n ],\n \" products \": \" \"\n}"
}
}
],
"Count": 1,
"ScannedCount": 1,
"ConsumedCapacity": null
}
我想要完成的任务是能够获取“dataversions”值 --> [Items][Tags][Dataversions] 并将该值写入本地可用的 JSON 文件.我尝试了各种方法,包括使用 Convert-ToJson 和 ConvertFrom-Json.
标签 json 值看起来像这样,没有转义空格 (/n)
{
"software1": "software1.zip",
"software2": "software2.zip",
"software3":
[
"software3.zip",
"software4.zip",
"software5.zip"
],
" data1": "2020_NA",
" 2020_eu ": "2020_EU",
" 2020_ww": "2021_WW",
" dataversions":
[
"2020",
"2019",
"2018",
"2017"
],
" products ": " "
}
如何检索 'dataversions' 的值,这是一个字符串列表。目前,我尝试了各种方法后只能得到这样的结果:
{"S":"{\n \"software1\": \"software1.zip\",\n \"software2\": \"software2.zip\",\n \"software3\":\n [\n \"software3.zip\",\n \"software4.zip\",\n \"software5.zip\"\n ],\n \" data1\": \"2020_NA\",\n \" 2020_EU\": \"20201_EU\",\n \" 2020_WW\": \"2021_WW\",\n \" dataversions\":\n [\n \"2020\",\n \"2019\",\n \"2018\",\n \"2017\"\n ],\n \" products\": \" \"\n}"}
我希望能够获取数据版本的值,以便覆盖 example.json 文件中的另一个 'dataversions'。如何获取数据版本值并清理 \n?
在您的 JSON 文件中,属性 名称 " dataversions"
包含前导 space。当 JSON 字符串转换为自定义对象时(通过 ConvertFrom-Json
),space 将包含在 属性 名称中。因此在使用成员访问(object.property
)语法时必须考虑:
($db_tags | ConvertFrom-Json).' dataversions'
基本上,我有一个使用 Powershell 从 DynamoDB 检索到的值,并且得到了 JSON 格式的一行,如下所示
function gettagsfromdynamo() {
$table_name = "table_name"
$dbkey = '{"ReleaseId":{"AttributeValueList":[ {"N":"1"} ],"ComparisonOperator": "EQ"}}' | ConvertTo-Json -Compress
$dbvalue = aws dynamodb query --table-name $table_name --key-conditions $dbkey --region $region
$latest_tags = $dbvalue
$latest_tags
}
$db_tags = gettagsfromdynamo
这就是db_tags的样子
{
"Items": [
{
"Comment": {
"S": "The first PC release."
},
"Product": {
"S": "PC"
},
"ReleaseId": {
"N": "1"
},
"CreatedOn": {
"S": "12/14/2020 15:23:32"
},
"Tags": {
"S": "{\n \"software1\": \"software1.zip\",\n \"software2\": \"software2.zip\",\n \"software3\":\n [\n \"software3.zip\",\n \"software4.zip\",\n \"software5.zip\"\n ],\n \" data1 \": \"2020_NA\",\n \" 2020_EU \": \"20201_EU\",\n \" 2020_WW \": \"2021_WW\",\n \" dataversions\":\n [\n \"2020\",\n \"2019\",\n \"2018\",\n \"2017"\n ],\n \" products \": \" \"\n}"
}
}
],
"Count": 1,
"ScannedCount": 1,
"ConsumedCapacity": null
}
我想要完成的任务是能够获取“dataversions”值 --> [Items][Tags][Dataversions] 并将该值写入本地可用的 JSON 文件.我尝试了各种方法,包括使用 Convert-ToJson 和 ConvertFrom-Json.
标签 json 值看起来像这样,没有转义空格 (/n)
{
"software1": "software1.zip",
"software2": "software2.zip",
"software3":
[
"software3.zip",
"software4.zip",
"software5.zip"
],
" data1": "2020_NA",
" 2020_eu ": "2020_EU",
" 2020_ww": "2021_WW",
" dataversions":
[
"2020",
"2019",
"2018",
"2017"
],
" products ": " "
}
如何检索 'dataversions' 的值,这是一个字符串列表。目前,我尝试了各种方法后只能得到这样的结果:
{"S":"{\n \"software1\": \"software1.zip\",\n \"software2\": \"software2.zip\",\n \"software3\":\n [\n \"software3.zip\",\n \"software4.zip\",\n \"software5.zip\"\n ],\n \" data1\": \"2020_NA\",\n \" 2020_EU\": \"20201_EU\",\n \" 2020_WW\": \"2021_WW\",\n \" dataversions\":\n [\n \"2020\",\n \"2019\",\n \"2018\",\n \"2017\"\n ],\n \" products\": \" \"\n}"}
我希望能够获取数据版本的值,以便覆盖 example.json 文件中的另一个 'dataversions'。如何获取数据版本值并清理 \n?
在您的 JSON 文件中,属性 名称 " dataversions"
包含前导 space。当 JSON 字符串转换为自定义对象时(通过 ConvertFrom-Json
),space 将包含在 属性 名称中。因此在使用成员访问(object.property
)语法时必须考虑:
($db_tags | ConvertFrom-Json).' dataversions'