You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTTP调用kdb+返回非机器可读内容 如何获取JSON格式响应

kdb+ HTTP接口返回JSON格式解决方案

直接设置kdb+返回JSON(推荐方案)

kdb+ 3.5及以上版本内置.j.j序列化函数,可直接将q数据结构转换为标准JSON字符串,无需额外依赖。你只需要对原有代码做如下调整:

  1. 新增JSON响应包装逻辑,给返回结果加上正确的HTTP响应头,避免浏览器按纯文本处理
    修改后的.q文件参考代码:
\p 8080 
system["l db"] 
// 原有查询逻辑保持不变
getData: {[a;b] ?[table;((>=;`start;$[`long;a]);(<=;`end;$[`long;b]));0b;()]}
// 新增HTTP JSON响应包装函数
getDataJson: {[a;b] 
  queryRes: getData[a;b];
  // 第一个元素为响应头字典,指定内容类型为JSON,第二个为序列化后的JSON字符串
  (`Content-Type`application/json; .j.j queryRes)
}
h:hopen `:localhost:8080:user:pass    
  1. 调用方式调整为请求新的包装函数,浏览器访问地址改为:
    http://localhost:8080/?getDataJson[1;2]
    此时返回结果就是标准JSON格式,可直接被机器解析。

注意:如果你的查询结果包含kdb+长整型(long)数据,JSON标准的数字精度最多支持53位,建议提前将长整型字段转为字符串避免精度丢失,可在getData函数最后加入字段类型转换逻辑。

已有pre包裹纯文本结果的解析方案

如果你不方便修改后端kdb+代码,也可以对拿到的pre标签内文本做手动解析:

  • 按换行符分割文本得到每一行数据
  • 第一行为字段名行,按空格分割得到所有字段名
  • 后续行按空格分割得到对应字段值,根据字段类型做转换后拼接为JSON对象即可

内容的提问来源于stack exchange,提问作者orr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 10:51:00