我使用下面的规则来检查hashmap键是否等于“templateUUID”。下面的规则运行没有错误,但值没有在所需的JSON中更改。
rule "Update HashMap Value"
when
$mobiSubset: Mobi_Subset()
$fileNameMappings: Map(this == $mobiSubset.fileNameMappings)
$key: String(this == "templateUUID") from $fileNameMappings.keySet()
then
$fileNameMappings.put($key, "metadata.json");
end
Json:
{
"titleId" : "3510585",
"contentType" : "Movie",
"titleBrief" : "Annihilation",
"titleBriefHD" : "Annihilation HD",
"downloadRights" : true,
"downloadNoHours" : 720,
"streamingRights" : true,
"fileNameMappings":
{
"bignight_3519599.scc":"bignight_3519599.scc",
"bignight_3519599.mp4":"bignight_3519599.mp4",
"templateUUID":"metadata.xml"
}
}
1条答案
按热度按时间rsl1atfo1#
我不明白你为什么要这样做,但这里有正确的语法。
如果你只是想用metadata.json替换metadata.xml,我会这样做:
第一个版本将盲目覆盖
templateUUID
字段中的Map中的 * 任何内容 *。第二个版本只会将其更新为metadata.json,如果它最初是metadata.xml。如果密钥不存在,两个版本都不会执行任何操作。