Gremlin客户端返回格式不符:替代弃用gremlin.createClient后的问题
解决Gremlin客户端返回格式匹配问题
方法一:调整客户端MIME类型配置
你当前设置的mimeType: 'application/json'会让服务器返回简化的JSON结构,而你需要的是带类型标识的GraphSON格式。只需移除该配置,或者指定对应版本的GraphSON MIME类型:
const gremlin = require('gremlin'); client = new gremlin.driver.Client(`wss://${endpoint}:8182/gremlin`, { // 移除mimeType配置,默认使用GraphSON v3格式 // 若之前依赖v2版本,可指定:mimeType: 'application/vnd.gremlin-v2.0+json' }); const result = await client.submit(query, {}); // 此时result将直接返回带@type和@value的目标数组格式
方法二:手动转换现有结果格式
如果无法修改客户端配置,可以手动将返回的_items数组转换为需要的格式:
const gremlin = require('gremlin'); client = new gremlin.driver.Client(`wss://${endpoint}:8182/gremlin`, { mimeType: 'application/json', }); const result = await client.submit(query, {}); // 转换为目标格式 const formattedResult = result._items.map(item => ({ "@type": "g:Int64", "@value": item })); // formattedResult即为你需要的结构
注意:如果返回的数值类型不止Int64,需根据实际类型动态设置@type;若你的场景中返回值均为Int64,上述代码即可满足需求。
内容的提问来源于stack exchange,提问作者Mickers
相关产品推荐
相关产品推荐

