jsonajaxapibing

Parsing JSON Bing Search API using JQuery


I am trying to parse Bing Search API Version 7 JSON using the following code, but not sure what I am doing wrong. Would like to parse "name" and "url", my code is below.

Bing JSON Results are at the following URL -> http://52.15.219.114/bing2.php?q=freebsd&s=10&p=0&m=en-us

var e = escape($('#book').val());
var pg = 10;
var limit = 0;
 
$.ajax({

    url: uri,
    method: "GET",
    data: { q:e, s:pg, p:limit  },
    success: function(data) {

    len = data.webPages.value.length

    for (i=0; i<len; i++ ){
       results += "<p><a href='" + data.webPages.value[i].url + "'>" + data.webPages.value[i].name + "</a>: " + data.webPages.value[i].snippet + "</p>";
    }

             $("#bookout").html(results);

      },

      
    error: function() {
     // console.log(data);
    }
  });

Solution

  • Below is a fix for parsing the Bing Search JSON API.

    var e = escape($('#book').val());
    var pg = 10;
    var limit = 0;
    
    $.ajax({
    
    url: uri,
    method: "GET",
    data: { q:e, s:pg, p:limit  },
    success: function(data) {
    
    var obj = JSON.parse(data)
    
    var ocean = obj.webPages.value; //client prop is an array
    for(var i = 0; i < ocean.length; i++){
    //alert(ocean[i].name);
    
    //FORMAT RESULTS  
    var ocean_format = '<div><div>' + '<a href="' + ocean[i].url + '"  target="_blank">' + ocean[i].name  + '</a></div><div>' + ocean[i].snippet + '</div><div class="text-secondary">' + ocean[i].displayUrl  + '</div></div>';
    
    $("#bookout").append(ocean_format);
    
              }//END SEARCH RESULTS
    
      },
    
      
    error: function() {
     // console.log(data);
    }
    });