簡體   English   中英

如何在jQuery Mobile中解析JSON響應?

[英]How to parse json response in jQuery mobile?

我是jQuery Mobile的新手。 我正在嘗試從聯系人那里獲取聯系人姓名。 通過發送AJAX請求進行JSON。 但是,當我單擊“提交”按鈕時,我沒有收到任何警報。

我的jQuery ajax請求

$(document).ready(function() {

    //after button is clicked we download the data
    $("#submit").click(function(){

        //start ajax request
        $.ajax({
            url: "myURL/contacts.json",

            dataType: "json",
            success: function(data) {

                var json = $.parseJSON(data);

                alert(json.name);

            });
        });
    });

Contacts.json

{
    "contacts": [
    {
            "id": "c200",
            "name": "Ravi Tamada",
            "email": "ravi@gmail.com",
            "address": "xx-xx-xxxx,x - street, x - country",
            "gender" : "male",
            "phone": {
                "mobile": "+91 0000000000",
                "home": "00 000000",
                "office": "00 000000"
            }
    },
    {
            "id": "c201",
            "name": "Johnny Depp",
            "email": "johnny_depp@gmail.com",
            "address": "xx-xx-xxxx,x - street, x - country",
            "gender" : "male",
            "phone": {
                "mobile": "+91 0000000000",
                "home": "00 000000",
                "office": "00 000000"
            }
    },
    .
    .
    .
    .

]}

如何為上述ajax響應生成動態可點擊列表?

從它的外觀來看,您的json將是一個對象數組。 嘗試執行json [0] .Name進行測試

dataType: "json"

已經將返回的數據指定為json對象。 因此,要讀取值,您可以簡單地使用對象語法:

success: function(data) {
    //cycle trough returned "contacts":
    for(var i=0;i<data.contacts.length;i++){
       console.log(data.contacts[i].name);
    }
}

首先,我們的代碼格式錯誤(智能引號,括號的位置錯誤)。 其次,由於您的聯系人位於數組中,因此您無法使用json.name訪問,而應嘗試如下操作:

$(document).ready(function () {

    //after button is clicked we download the data
    $("#submit").click(function () {

        //start ajax request
        $.ajax({
            url: "myURL/contacts.json",
            dataType: "json",
            success: function (data) {

                var json = $.parseJSON(data);

                json.contacts.forEach(function(val, ind, arr){
                  alert(val.name);
                });

            }
        });
    });
});

您的json數據存在於聯系人中,因此您應該以這種格式命名。

    var json = $.parseJSON(data);
    alert(json.contacts[0].name);

代替解析JSON,您可以執行以下操作:

$.ajax({
..
dataType: 'json' // using json, jquery will make parse for  you
});

要訪問JSON的屬性,請執行以下操作:

data[0].name;

data[0].email;

為什么需要data [0]因為數據是一個數組,所以要獲取其內容,需要data [0](第一個元素),它為您提供了一個對象{“ name”:“ myName”,“ address”:“ myAddress” }。

而訪問對象規則的屬性是:

Object.property

有時

Object["property"] // in some case

所以你需要

data[0].name等,以獲取所需的內容。

如果沒有

設置dataType: json然后您需要使用$.parseJSON()解析它們並檢索如上的數據。

暫無
暫無

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

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