2014-10-22 3 views
0

Я был в этом часами. Как вы получаете фильтрацию для работы? Ни одно из решений в Интернете не работает.Сбор данных из сообщений Facebook с использованием JPath/JSONPath

Все, что я хочу сделать, это захватить комментарии (выделено ими < < >>>) от 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_10100749", 
      "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" 
     } 
    } 
    } 

}

ответ

0

Чтобы получить на комментарии, вам нужно ввести выражение фильтра для фильтрации на замечания„Тори Смит“, а затем выберите комментарий поле.

Принимая это шаг за шагом, чтобы получить все комментарии, вам нужно это:

$.comments.data 

Затем процедить только замечания по «Тори Смита» добавить фильтр так:

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

Наконец, чтобы выбрать только сообщение расширить запрос следующим образом:

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

Я проверил это с помощью Onlin e JSON здесь: http://www.jsonquerytool.com/sample/jsonpathwhereselectcomments