#javascript #json #nested-json
Вопрос:
У меня есть немного JSON.
{
ZVH2: {
username: 'ZVH2',
ping: 0,
uuid: '3a4423c3-dce1-40c1-8333-ab2ffdfcd005',
displayName: ChatMessage {
json: [Object],
text: '',
extra: [Array],
bold: undefined,
italic: undefined,
underlined: undefined,
strikethrough: undefined,
obfuscated: undefined,
color: undefined
},
entity: Entity {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
id: 367,
type: 'player',
position: [Vec3],
velocity: [Vec3],
yaw: 3.141592653589793,
pitch: 0,
onGround: false,
height: 1.62,
width: 0,
effects: [Object],
equipment: [Array],
heldItem: [Item],
isValid: true,
metadata: [Array],
username: 'ZVH2',
name: 'player',
timeSinceOnGround: 0,
attributes: [Object],
isInWater: false,
isInLava: false,
isInWeb: undefined,
isCollidedHorizontally: false,
isCollidedVertically: false,
[Symbol(kCapture)]: false
},
gamemode: 2
},
Maximo237354: {
username: 'Maximo237354',
ping: 161,
uuid: 'd6d1bcda-d3c0-406b-b91e-beb3f7be9f5f',
displayName: ChatMessage {
json: [Object],
text: '',
extra: [Array],
bold: undefined,
italic: undefined,
underlined: undefined,
strikethrough: undefined,
obfuscated: undefined,
color: undefined
},
entity: Entity {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
id: 72,
type: 'player',
position: [Vec3],
velocity: [Vec3],
yaw: 2.773437264497239,
pitch: -0.04908738521234035,
onGround: true,
height: 1.62,
width: 0.6,
effects: [Object],
equipment: [Array],
heldItem: [Item],
isValid: true,
metadata: [Array],
name: 'player',
username: 'Maximo237354',
uuid: 'd6d1bcda-d3c0-406b-b91e-beb3f7be9f5f',
dataBlobs: undefined,
attributes: [Object],
headYaw: 2.773437264497239,
[Symbol(kCapture)]: false
}
}
}
Я хочу использовать javascript для печати имени пользователя username здесь. Он может либо перебирать каждую вещь и выводить значение username, либо просто принимать первое значение, потому что это тоже имя пользователя. Я нигде не могу найти хороший учебник по этому вопросу в Интернете. Я хочу убедиться, что я печатаю каждое имя пользователя, а не сущность. Может кто-нибудь, пожалуйста, помочь с этим?
Комментарии:
1. Если вам нужно извлечь ключи объекта, попробуйте
Object.keys(yourDataset)
Посмотреть Документы2. «У меня есть немного JSON» … нет, у вас нет. Это объект JavaScript
Ответ №1:
Предполагая, что ваша переменная JSON вызвана data
, вы можете извлечь ключи с помощью Object.keys(data)
Чтобы выполнить итерацию и получить имена пользователей, вы можете сделать
Object.keys(data).forEach(key => {
let username = data[key].username;
});
Комментарии:
1. Ключи уже являются именами пользователей
2. Мне интересно, почему бы вам просто не преобразовать это обратно в объект JavaScript, а затем получить его таким образом, а не разбирать строку. Вся цель JSON заключается в том, что он представляет объект JavaScript.