如何通过 JSonApi 从 Daml 中查询 Map 值?
How to query Map values from the Daml through JSonApi?
我试图查询 Daml 模板文本映射,它抛出空集而不是提供特定数据-
例如:
"Data": [
{ "information":"XYZ",
{
"textMap": {
"Type": {
"_1": "A",
"_2": "B"
},
"Date": {
"_1": "2019-11-29",
"_2": "AMD"
},
}
}
}}
]
在这里,在上面的示例中,我尝试仅使用类型键进行查询,但它没有抛出与该特定键相关的任何数据,但是当我发送 Map 的两个键值时,我可以获得该特定的 data.but 我只想在该 Map 中发送一个键值以进行查询 it.how 可以在 daml 中实现这一点。
TextMap
的行为类似于查询 API 中的列表。映射是一个值,您只能在 上匹配整个 。您可以看到列表 here.
的行为
假设您在模板中有一个简单的 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" 或 "contains" 的查询选项。
我试图查询 Daml 模板文本映射,它抛出空集而不是提供特定数据- 例如:
"Data": [
{ "information":"XYZ",
{
"textMap": {
"Type": {
"_1": "A",
"_2": "B"
},
"Date": {
"_1": "2019-11-29",
"_2": "AMD"
},
}
}
}}
]
在这里,在上面的示例中,我尝试仅使用类型键进行查询,但它没有抛出与该特定键相关的任何数据,但是当我发送 Map 的两个键值时,我可以获得该特定的 data.but 我只想在该 Map 中发送一个键值以进行查询 it.how 可以在 daml 中实现这一点。
TextMap
的行为类似于查询 API 中的列表。映射是一个值,您只能在 上匹配整个 。您可以看到列表 here.
假设您在模板中有一个简单的 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" 或 "contains" 的查询选项。