我试图查询Daml模板文本--映射它将我抛出空集,而不是提供特定的数据--例如:
"Data": [
{ "information":"XYZ",
{
"textMap": {
"Type": {
"_1": "A",
"_2": "B"
},
"Date": {
"_1": "2019-11-29",
"_2": "AMD"
},
}
}
}}
]在上面的示例中,我尝试只使用类型键进行查询,但它并不是抛出与该特定键相关的任何数据,但是当我同时发送Map的两个键值时,我能够得到我想要的特定的data.but,我只想在这个映射中发送一个键值,因为查询it.how可以在daml中实现这一点。
发布于 2019-11-29 08:47:14
TextMap的行为类似于查询API中的列表。地图是一个值,您只能将其作为一个整体进行匹配。您可以看到列表这里的行为。
假设模板中有一个简单的TextMap:
daml 1.2
module Main where
import DA.TextMap as Map
template T
with
p : Party
m : TextMap Int
where
signatory p
setup = scenario do
p <- getParty "p"
submit p do
create T with
p
m = Map.fromList [
("one", 1),
("two", 2)
]具有以下有效负载的对contracts/search的调用将匹配。
{
"%templates": [
{
"moduleName": "Main",
"entityName": "T"
}
],
"m" : {
"two": "2",
"one": "1"
}
}即使转换了映射项的顺序,m的参数表示相同的映射,因此值是相等的。
但是,更改为简单的"m" : { "one" : "1" }并不匹配。我们正在查询一个T类型的合同,其中包含一个只有一个条目"one"的映射。
目前没有查询"containsKey“或”包含“的选项。
https://stackoverflow.com/questions/59100131
复制相似问题