从复杂的JSON中获取数据

时间:2014-04-21 10:02:12

标签: javascript json

我是javascript和JSON的新手,我已经完成了一项任务。请在以下链接中找到JSON,

http://pastebin.com/0BY3eptF

据我所知,上面是一个非常复杂的JSON。

我正在尝试通过ajax从WSDL中获取输出

success: function(api) {
    console.log(api.SearchResult); // trying to fetch information on SearchResult object
}

这不起作用。我想学习如何迭代每个JSON字符串循环。我还看到一个WSResult []数组。一个简洁的javascript解释将帮助我很多。谢谢。

3 个答案:

答案 0 :(得分:1)

success: function(api) {},此处api仍然是一个字符串,您必须先将其解析为JSON:

success: function(api) {
    var api = JSON.parse(api);
    console.log(api.SearchResult); // trying to fetch information on SearchResult object
}

答案 1 :(得分:1)

某些Web服务将内容类型返回为纯文本而不是json,您必须手动转换为json。下面的代码将帮助您做同样的事情。

success: function(api) {
    if (api.constructor === String) {
        api = JSON.parse(api);
    }
    console.log(api.SearchResult);
}

要遍历api.SearchResult.Result.WSResult数组,请找到以下代码

$(api.SearchResult.Result.WSResult).each(function (index, val) {
    // here val is single object of WSResult array
});

答案 2 :(得分:1)

不是一个完整的答案,而是一些有用的指示:

$ajax({
    url: 'http://myURL',
    // specify the datatype; I think it overrides inferring it from the document MIME type
    dataType: 'json', 
    success: function (api) {
        // provided your data does come back as a JSON document
        // you should be able to access api.SearchResult
    },
    error: function( jsXHR, textStatus, errorThrown) {
        // always have an error handler, so you can see how it went wrong.
    }
);

请阅读此处dataType部分,因为它可能会解决您的问题