【问题标题】:Json Output display from webservice call来自 web 服务调用的 Json 输出显示
【发布时间】:2017-07-19 21:56:33
【问题描述】:

我对 JSON / Jquery 世界很陌生,所以请原谅我的无知。

我正在尝试从 webservice 调用返回的 Json 数据中读取输出,如下所示:

我的网络服务调用在这里:

http://example.com/getPortfolioListByContact.json?component=C1&contactId=510297

这会将数据返回为:

{
  "data": [
    {
      "PORTFOLIO_ID": 13495,
      "SUBSCRIPTION_ID": 1653,
      "STATUS": "ACTIVE",
    }
  ],
  "success": true
} 

现在我正在尝试对作为字符串返回的 Json 数据发出警报,并且还希望将其作为 Parsed /

<script>
var parsed ; 
$.getJSON("http://example.com/getPortfolioListByContact.json?component=C1&contactId=510297", function(data){
    alert(data.SUBSCRIPTION_ID);
});
parsed = JSON.parse(data); 
alert(parsed) ; 
</script> 

我在 Alert 中得到的响应是 "Undefined" 。我可能没有正确处理成功处理程序。我想获取返回的 json 数据的每个值和特定值。 请帮忙。

谢谢

【问题讨论】:

    标签: json


    【解决方案1】:

    我在警报中收到“未定义”的响应。

    原因:您正试图解析 API 响应超出范围。因为data 对象只能在 API 调用返回的 promise 中访问。

    试试这个希望它会按照你的期望工作

    $.getJSON("http://example.com/getPortfolioListByContact.json?component=C1&contactId=510297", function(res) {
        var data = res.data;
        alert(JSON.stringify(data));
    });
    

    【讨论】:

    • 我得到了整个 json 输出的警报但是 stringify 我错过了解析。如何仅获取 SUBSCRIPTION_ID 的数据? JSON.parse 不起作用。可能是我在总体上遗漏了一些东西。
    • 无需使用 JSON.parse,因为数据仅以解析后的 JSON 形式出现。你可以像这样直接访问res.data[0].SUBSCRIPTION_ID
    • 谢谢@Rohit。这正是我需要的。
    【解决方案2】:

    您在范围之外调用data

    <script>
    var parsed ; 
    var myData;
    $.getJSON("http://example.com/getPortfolioListByContact.json?component=C1&contactId=510297", function(data){
     myData = data;
        alert(data.SUBSCRIPTION_ID);
    });
    parsed = JSON.parse(myData); 
    alert(parsed) ; 
    </script> 
    

    【讨论】:

    • 谢谢,但不幸的是仍然抛出 undefined 并且只得到一个 Alert 。顺便在脚本调用的顶部添加下面的内容。
    猜你喜欢
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多