Доступ к значениям в JSO

Я пытаюсь протестировать вызов Alchemy News API через клиентское приложение JavaScript, используя сообщение JSONP.

Мои результаты JSON выглядят так:

<results>
<status>OK</status>
<usage>
By accessing AlchemyAPI or using information generated by AlchemyAPI
</usage>
<totalTransactions>50</totalTransactions>
<result>
   <docs>
      <element>
         <id>ODE0ODI3NTg3MHwxNDUzMzc2NDkz</id>
         <source>
            <enriched>
               <url>
                  <title>
                     Mich. Company Offers $15 Million To Acquire Firm
                  </title>
               </url>
          </enriched>
      </source>
      <timestamp>1453376493</timestamp>
</element>

Я могу успешно вызвать API, используя следующий код (взято из Как получить JSON из запроса API в javascript моей страницы?)

 function loadDoc() {
        $.ajax({
            url: 'https://gateway-a.watsonplatform.net/calls/data/GetNews?apikey=MY_KEY&outputMode=json&outputMode=json&start=now-7d&end=now&count=1&return=enriched,original',
            dataType: 'jsonp',
            jsonp: 'jsonp',
            type: "get",
                success: function (res) {
                if (res["status"] === "OK") {
                    alert("Good!");
                }
                else if (res["status"] === "ERROR") {
                    alert("Bad!");
                }
            },
            error: function (jqxhr) {
                //console.log(jqxhr);
            }
        });
}

С чем я действительно борюсь, так это с доступом к данным в возвращаемом объекте.
Я могу читать значения верхнего уровня, такие как status, без проблем, но я могу загрузить любые значения из более глубокой информации. схема.

Может ли кто-нибудь написать, как я могу получить доступ к данным в поле title?

Спасибо заранее.


person Brendan    schedule 21.01.2016    source источник


Ответы (1)


А, я нашел решение (я не понял, что документы - это массив). Вот код, вдруг кому пригодится.

function loadDoc() {
    $.ajax({
        url: 'https://gateway-a.watsonplatform.net/calls/data/GetNews?apikey=key&outputMode=json&outputMode=json&start=now-1d&end=now&count=2&q.enriched.url.enrichedTitle.relations.relation=|action.verb.text=acquire,object.entities.entity.type=Company|&return=enriched.url.title',
        dataType: 'jsonp',
        jsonp: 'jsonp',
        type: "get",
        data: { },
        success: function (data) {
            if (data["status"] === "OK") {

            var html = '';
            results = data.result.docs;

                for (var i = 0; i < results.length; i++) {

                    newsTitle = results[i].source.enriched.url.title;

                html = html + '<a href="#">' + newsTitle + '</a></br />';
                }

            $('#results').html(html);

            }
            else if (data["status"] === "ERROR") {
                alert("Bad!");
            }
        },
        error: function (error) {
            //console.log(error);
        }
    });

}
person Brendan    schedule 22.01.2016