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

使用JAQL从Facebook分析数据中按ID查询页面名称的问题

JAQL查询Facebook数据:根据ID获取对应页面名称的正确方法

我来帮你解决这个JAQL查询的问题。首先,先确认下你提供的JSON数据:

[{ 
  id: '1071142589616282', 
  name: 'kps', 
  likes: { 
    data: [
      { name: 'first_name', id: '327945414026898', created_time: '2018-03-27T20:41:50+0000' }, 
      { name: 'second name', id: '180392125340045', created_time: '2010-11-22T06:36:33+0000' }, 
      { name: 'third name', id: '149186111778540', created_time: '2010-10-07T11:25:22+0000' } 
    ] 
  } 
}]

你的原查询data1[0] -> filter $.likes.data[*].id =='327945414026898'没有输出的原因很明确:你在外层用户对象上执行过滤,而$.likes.data[*].id会返回一个包含所有点赞ID的数组(比如['327945414026898', '180392125340045', ...]),用数组和单个字符串直接==比较永远不会成立,自然没有匹配结果。

正确的查询方式

我们需要深入到likes.data数组内部,直接针对数组元素做过滤,再提取对应的name字段:

data1[0].likes.data -> filter $.id == '327945414026898' -> project $.name

分步拆解:

  1. 定位目标数组:data1[0].likes.data直接指向点赞数据的数组,让过滤操作精准作用在每一条点赞记录上。
  2. 筛选匹配ID的元素:filter $.id == '327945414026898'会挑出数组中id完全匹配目标值的对象。
  3. 提取需要的字段:project $.name只保留我们要的name字段,最终输出就是"first_name"。

如果想直接拿到单个字符串结果(而非包含值的数组),可以再加个[0]取结果的第一个元素(因为ID是唯一的,只会有一个匹配项):

(data1[0].likes.data -> filter $.id == '327945414026898' -> project $.name)[0]

这样执行后就会直接返回first_name这个字符串。

内容的提问来源于stack exchange,提问作者Kotha Praneeth Sai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:00:06