使用JPath / JSONPath从Facebook帖子收集数据

时间:2014-10-22 19:32:40

标签: json facebook-graph-api facebook-fql jsonpath

我已经在这几个小时了。你如何过滤工作? 在线解决方案都没有。

我想要做的就是从名称“Tori Smith”的json中获取评论(由这些<<<<>>>>突出显示)。我一直在使用这个应用来测试http://jsonpath.curiousconcept.com/这就是我所得到的:'comments.data。 .from.id'

数据:

{  
  "id":"12029930209393029_10100748134340048",
  "from":{  
     "id":"12029930209393029",
     "name":"Tori Smith"
  },
  "message":"Buy this now",
  "picture":"https:\/\/fbexternal-a.akamaihd.net\/app_full_proxy.php?app=141861192518680&v=1&size=z&cksum=a0471c1f5895cd22c74474fabc989c7e&src=http%3A%2F%2Fmedia3.policymic.com%2FYTM2OWUwN2Q0MSMvRnlpUTkxZU9DMWtGWFZ6TUNiYWh3RkxveXRjPS8yeDE6MTI4Nng2MjIvMTI4MHg2MjAvZmlsdGVyczpxdWFsaXR5KDcwKS9odHRwOi8vczMuYW1hem9uYXdzLmNvbS9wb2xpY3ltaWMtaW1hZ2VzL2JqNTdvbTZxZGd1N3ZpaGtvcWVrNnlzaTI5bW55dGZqanEwMWhuc3FqYjgxc3dkeGcyN2F6czV0eXV0bWJzZTguanBn.jpg",
  "link":"http:\/\/mic.com\/articles\/101252\/this-tiny-box-will-let-you-stay-anonymous-on-the-internet",
  "name":"This Tiny Box Will Let You Stay Anonymous on the Internet",
  "caption":"Mic",
  "description":"A simple and elegant solution to a major technology problem.",
  "icon":"https:\/\/fbcdn-photos-d-a.akamaihd.net\/hphotos-ak-xpf1\/t39.2081-0\/10333103_752719651432828_1597152122_n.png",
  "actions":[  
     {  
        "name":"Comment",
        "link":"https:\/\/www.facebook.com\/12029930209393029\/posts\/10100748134340048"
     },
     {  
        "name":"Like",
        "link":"https:\/\/www.facebook.com\/12029930209393029\/posts\/10100748134340048"
     }
  ],
  "privacy":{  
     "description":"Your friends",
     "value":"ALL_FRIENDS",
     "friends":"",
     "networks":"",
     "allow":"",
     "deny":""
  },
  "type":"link",
  "status_type":"app_created_story",
  "application":{  
     "name":"Mic",
     "namespace":"micmediaapp",
     "id":"141861192518680"
  },
  "created_time":"2014-10-14T14:54:54+0000",
  "updated_time":"2014-10-15T03:55:19+0000",
  "comments":{  
     "data":[  
        {  
           "id":"10100748134340048_10100748984636048",
          "from":{  
              "id":"123094958239849866",
              "name":"Don Draper"
           },
           "message":"Even if I use Tor",
           "can_remove":true,
           "created_time":"2014-10-15T03:03:29+0000",
           "like_count":0,
           "user_likes":false
        },
        {  
           "id":"10100748134340048_10100749036726658",
           "from":{  
              "id":"12029930209393029",
              "name":"Tori Smith"
           },
         <<<  "message":"Yes this can go with you and I think it works for all apps outside of TOR browser", >>>
           "can_remove":true,
           "created_time":"2014-10-15T03:55:19+0000",
           "like_count":0,
           "user_likes":false
        },
        {  
           "id":"10100748134340048_1010074901234658",
           "from":{  
              "id":"12029930209393029",
              "name":"Tori Smith"
           },
         <<<  "message":"Second Text", >>>
           "can_remove":true,
           "created_time":"2014-10-15T03:55:19+0000",
           "like_count":0,
           "user_likes":false
        }

     ],
     "paging":{  
        "cursors":{  
           "after":"WTI5dGJXVnVkRjlqZFhKemIzSTZNVEF4TURBM05Ea3dNelkzTWpZMk5UZzZNVFF4TXpNME5UTXhPVG95",
           "before":"WTI5dGJXVnVkRjlqZFhKemIzSTZNVEF4TURBM05EZzVPRFEyTXpZd05EZzZNVFF4TXpNME1qSXdPVG94"
        }
     }
  }

}

1 个答案:

答案 0 :(得分:0)

要获得评论,您需要引入一个过滤表达式,以便过滤到#34; Tori Smith&#34;然后选择注释字段。

一步一步地获取所有评论,你需要这个:

$.comments.data

然后过滤到只有&#34; Tori Smith&#34;添加如下过滤器:

$.comments.data[?(@.from.name == 'Tori Smith')]

最后,要仅选择消息,请按以下方式展开查询:

$.comments.data[?(@.from.name == 'Tori Smith')].message

我在这里使用在线JSON查询工具对此进行了测试: http://www.jsonquerytool.com/sample/jsonpathwhereselectcomments