在MarkLogic中将空值替换为'''sem:sparql'输出json

时间:2018-07-17 10:52:43

标签: sparql marklogic marklogic-8

我正在使用ML 8.0-6.3

我正在使用sem:sparql()函数来运行SPARQL查询。

如果特定变量没有三元组(variables are in OPTIONAL block),我将在JSON输出中获取null值。

MarkLogic中是否有其他解决方法,可以将null的值替换为""

赞:

即将输出:

{
    "ncFacetIri": "http://www.test.com/facet/UL",
    "acronym": "UL",
    "acronym1": null
}

预期的json输出:

{
    "ncFacetIri": "http://www.test.com/facet/UL",
    "acronym": "UL",
    "acronym1": ""
}

通过这种方式,我将sem:sparql输出转换为JSON对象:

<a>{sem:sparql($query)}</a>/json:object ! json:object(.)

请帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用COALESCE

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT ?subject ?type (COALESCE(?l, "") as ?label)
WHERE {
  ?subject rdf:type ?type.
  OPTIONAL {
    ?subject rdfs:label ?l.
  }
}

HTH!