簡體   English   中英

訪問JSON解析對象

[英]Accessing JSON parsed object

所以這是我的JS代碼:

$(document).ready(function() {
    $.ajax({
        url: "/",
        type:"POST",
        beforeSend: function (xhr) {
            var token = $('meta[name="csrf_token"]').attr('content');

            if (token) {
                  return xhr.setRequestHeader('X-CSRF-TOKEN', token);
            }
        },
        success:function(data){
            console.log(data);
        },error:function(){ 
            console.log("error!!!!");
        }
    }); 

});

這就是我在控制台中得到的:

Object { all_creations: "[{"id":"2","user_id":"2","title":"D…" }

但是現在我想做些類似的事情:

console.log(data.user_id)

但這什么也沒有返回。

相同於:

console.log(data['all_creations'].user_id)
console.log(data['all_creations'][0].user_id)
console.log(data[0].user_id)

...

我正在使用laravel5 btw,此JSON對象由toJson()函數返回。 (如果有幫助)

我知道這個問題已經被解答了無數次,但是由於某種原因,我無法在我的項目中使用該問題……我不是Java語言或與之相關的任何專家(例如JSON)。 Ajax,JSON對我而言仍然是痛苦之源。 我希望有一天...認真的^^

我覺得您最好的選擇是在Chrome中對其進行測試,然后使用F12開發人員工具查看服務器返回的內容。 也許檢查“網絡”選項卡中的請求,或者嘗試找出在控制台中檢索user_id的正確方法。

如果感到困惑,請看一些F12 Chrome開發人員工具教程。

如果有的話,這是如何訪問數據的粗略指南:

Object { all_creations: "[{"id":"2","user_id":"2","title":"D…" }
^^^^^^^^                                                       ^

標記的區域表示data是標准對象,因此已經被解析。

Object { all_creations: "[{"id":"2","user_id":"2","title":"D…" }
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

內部部分說data.all_creations是一個包含字符串值的屬性。

Object { all_creations: "[{"id":"2","user_id":"2","title":"D…" }
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

字符串值本身似乎包含JSON編碼的值,因此您首先需要解析該值:

var creations = JSON.parse(data.all_creations);

然后,從字符串值中可以看到它包含一個以對象作為第一個元素的數組。

alert(creations[0].user_id) // 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM