类型化 JSON
普通 JSON 与 带类型 JSON
普通 JSON 结果格式 并不提供返回值的类型信息。例如,下列两个请求会得到完全相同的响应,尽管在第一个请求中返回值是 Cypher 的 STRING,而在第二个请求中返回值是 ZONED DATETIME。
{
"statement": "RETURN '2024-01-01T21:40:32-01:00'"
}
{
"statement": "RETURN datetime('2024-01-01T21:40:32-01:00')"
}
如果您需要知道每个返回值的具体类型,可以使用 Neo4j 的带类型信息的扩展 JSON 格式。
启用带类型的 JSON
要以带类型的 JSON 格式获取结果,请在请求头中设置 Accept: application/vnd.neo4j.query.v1.1。
在此格式中,每个返回值都是一个对象,类型信息和数值信息分别保存在不同的键中。
OffsetDateTime 值示例{
"$type":"OffsetDateTime",
"_value":"2024-01-01T21:40:32-01:00"
}
如果您还想使用该格式提交参数,请在请求头中设置 Content-Type: application/vnd.neo4j.query.v1.1。
示例
请求示例
POST https://:7474/db/neo4j/query/v2
Authorization: Basic bmVvNGo6dmVyeXNlY3JldA==
Accept: application/vnd.neo4j.query.v1.1
Content-Type: application/vnd.neo4j.query.v1.1
{
"statement": "MERGE (p:Person {name: $name}) RETURN p AS person, p.name AS name",
"parameters": {
"name": {
"$type": "String",
"_value": "Phil"
}
}
}
示例响应
202: Accepted
Content-Type: application/vnd.neo4j.query.v1.1
{
"data": {
"fields": [
"person",
"name"
],
"values": [
[
{
"$type": "Node",
"_value": {
"_element_id": "4:ff04df25-ff2b-4b55-98f8-6888297b025e:2",
"_labels": [
"Person"
],
"_properties": {
"name": {
"$type": "String",
"_value": "Phil"
}
}
}
},
{
"$type": "String",
"_value": "Phil"
}
]
]
},
"bookmarks": [
"FB:kcwQ/wTfJf8rS1WY+GiIKXsCXg6Q"
]
}
类型映射
本节详细说明了在查询 API 中 Cypher 类型 的标签映射方式。
| Cypher 类型 | 查询 API 类型 | 示例 | ||
|---|---|---|---|---|
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
企业版 2025.11 引入
|
||
|
|
引入于 2025.11 |