【问题标题】:Get JSON object from AJAX call从 AJAX 调用中获取 JSON 对象
【发布时间】:2014-04-08 16:25:46
【问题描述】:

我是 AJAXjavascript 的新手。在我的项目中,我必须在我的javascript 文件中获取一个json 对象。我使用了spray-json,它向我显示了 url 中的 json 对象。 http://localhost:8081/all-modules

{
  "status": "S1000",
  "description": "Success",
  "results": ["module1", "module2", "module3"]
}

我的 Ajax 调用

  $.ajax({
        url: 'http://localhost:8081/all-modules',
        dataType: 'application/json',
        complete: function(data){
            alert(data)
        },
        success: function(data){
            alert(data)
        }

它返回一个警报[object Object]。这里有什么问题?

【问题讨论】:

  • 尝试提醒data.status。我不认为有问题。你只是不能提醒一个对象
  • alert 将在data 上隐式调用toString,这将是一个对象字面量(JSON 的解析方式),该值为“[object Object]”
  • 在警报中显示时使用 JSON.stringify(data),因为警报无法显示对象。它将对象转换为字符串格式。
  • 那已经是一个 JSON 对象了

标签: javascript jquery ajax json spray-json


【解决方案1】:

如果您希望查看 JSON 对象中的所有数据,请使用 JSON.stringify 更多详情请参考here

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    试试下面的;

    var data = '{"name": "John","age": 30}';
    
    var json = JSON.parse(data);
    
    alert(json["name"]);
    alert(json.name);
    

    您也可以查看此链接:How to access JSON object in JavaScript

    【讨论】:

      【解决方案3】:

      试试data[0].status;。您的数据现在在一个对象中。在console.log(data) 你可以看到

      【讨论】:

        【解决方案4】:

        data 不再是 JSON 格式,而是 Javascript Object。你不再需要使用像 jQuery.parseJSON 这样的函数了。

        对于初学者来说这是一个常见的错误。

        如果您想查看此 Javascript 对象,请尝试alert(JSON.stringify(data));

        【讨论】:

          【解决方案5】:

          我认为你只是打印对象。试试这样的东西

          $.ajax({
              url: 'http://localhost:8081/all-modules',
              dataType: 'application/json',
              complete: function(data){
                  alert("status = "+data.status+"descripttion"+data.description);
              },
              success: function(data){
                   alert("status = "+data.status+"descripttion"+data.description);
              }
          

          【讨论】:

            【解决方案6】:

            只需 console.log(data) 你就会看到你的对象。

            你可以通过这样的方式访问你的价值

            data.id //will give you id
            

            它还取决于您的 json 您是如何创建的,请查看此内容以获取解释

            // if it simply json then access it directly
            //Example => {"id":1,"value":"APPLE"}
            data.id; // will give you 1 
            
            // if it json array then you need to iterate over array and then get value.
            //Example => [{"id":1,"value":"APPLE"},{"id":2,"value":"MANGO"}] then
            data[0].id;  // will give you 1 
            

            所以你的代码会是这样的

             $.ajax({
                url: 'http://localhost:8081/all-modules',
                dataType: 'application/json',
                complete: function(data){
                    alert(data.status);// S1000
                    alert(data.description);// Success
                    // for results you have to iterate because it is an array
                    var len =  data.results.length;
                    for(var i=0;i<len;i++ ){
                        alert(data.results[i]);
                    }
                },
                success: function(data){
                    alert(data)
                }
            })
            

            【讨论】:

              【解决方案7】:

              尝试 console.log() 它将登录控制台。警报不显示对象。

               $.ajax({
                  url: 'http://localhost:8081/all-modules',
                  dataType: 'application/json',
                  complete: function(data){
                      console.log(data)
                  },
                  success: function(data){
                      console.log(data)
                  }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-06-01
                • 1970-01-01
                • 2012-01-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多