2017-02-22 8 views
0

Я разрабатываю веб-сайт с интерфейсом и интерфейсом. Я использовал JQuery, чтобы отправить запрос и получить результат в виде объекта JSON:Как использовать jquery для обработки нескольких объектов json

{ 
    "item": [ 

    ], 
    "shop": [ 

    ], 
    "user": [ 
    { 
     "user_id": "9", 
     "full_name": "Minh Duc", 
     "email": "[email protected]", 
     "fb_link": "https:\/\/www.facebook.com\/SieuNhan183", 
     "user_name": "Duc", 
     "password": "37cd769165eef9ba6ac6b4a0fdb7ef36", 
     "level": "0", 
     "admin": "0", 
     "dob": "1996-03-18", 
     "location": "Ho Chi Minh", 
     "user_image_url": null 
    } 
    ] 
} 

Теперь я найти способ, чтобы получить данные от пользователя объекта. Как я могу сделать это с помощью javascript?

+0

$ jsonObject.user [0] будет пользовательским объектом, который вы хотите. Используйте. (точка) для доступа к требуемому объекту –

+0

[Нет такой вещи, как «объект JSON»] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a- JSON /) – Andreas

ответ

2

Когда у вас есть данные (в примере это data), используйте точечную нотацию, чтобы получить узел с пользователем.

Пользователь представляет собой массив, поэтому используйте [] для доступа к одному элементу, например. [0]

var data = { 
 
    "item": [ 
 

 
    ], 
 
    "shop": [ 
 

 
    ], 
 
    "user": [ 
 
    { 
 
     "user_id": "9", 
 
     "full_name": "Minh Duc", 
 
     "email": "[email protected]", 
 
     "fb_link": "https:\/\/www.facebook.com\/SieuNhan183", 
 
     "user_name": "Duc", 
 
     "password": "37cd769165eef9ba6ac6b4a0fdb7ef36", 
 
     "level": "0", 
 
     "admin": "0", 
 
     "dob": "1996-03-18", 
 
     "location": "Ho Chi Minh", 
 
     "user_image_url": null 
 
    } 
 
    ] 
 
} 
 

 

 
console.log(data.user[0].user_id)

3

Дополняя @arcs ответ, помните, что в JavaScript, вы можете получить доступ к членам объекта с помощью точечной нотации (data.user[0].user_id) или квадратные скобки обозначения. Таким образом:

data['user'][0]['user_id'] 

это полезно, потому что вы можете иметь массив «класс», а затем делать такие вещи, как:

['item', 'shop', 'user'].forEach((array) => processArray(data[array][0])); 

, то вы можете отфильтровать только некоторые классы или делать более продвинутые вещи

0

Я предпочитаю использовать квадратные скобки, например:

$jsonObject["user"][0]["user_id"] 

, но вы можете использовать точку, как это:

data.user[0].user_id 

- То же самое.

Если вы хотите проверить, если свойство существует, вы можете это сделать:

if(typeof $jsonObject["user"] !== 'undefined'){ 
    //do domethings as typeof $jsonObject["user"][0]["user_id"] 
} 

Если вы хотите получить свойство динамически вы можете сделать это:

const strId = "id"; 
const strName = "name"; 

//get user_id 
let user_id = $jsonObject[user][0]["user_" + strId ]; 
//get user_name 
let user_name = $jsonObject[user][0]["user_" + strName]; 

но не очень красиво.

Смежные вопросы