Разбор вложенного json с помощью javascript
У меня есть 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 для вывода здесь имени пользователя или имени пользователя. Он может либо перебирать каждую вещь и печатать значение имени пользователя, либо просто принимать первое значение, потому что это тоже имя пользователя. Я нигде не могу найти в Интернете хороший учебник по этому поводу. Я хочу убедиться, что печатаю каждое имя пользователя, а не сущность. Может кто-нибудь помочь с этим?
2 ответа
Предполагая, что ваша переменная JSON называется
data
, вы можете извлечь ключи с помощью
Object.keys(data)
Чтобы перебрать и получить имена пользователей, вы можете сделать
Object.keys(data).forEach(key => {
let username = data[key].username;
});
Пожалуйста, поймите, что JSON означает нотацию объектов JavaScript. Другими словами, JSON представляет собой объект Javascript. Преобразуйте JSON в объект Javascript.
Например
var object1 = JSON.parse('{"rollno":101, "name":"Mayank", "age":20}');
Итак, в приведенном выше коде вы можете получить роллно, обратившись к объекту object1
console.log(объект1.rollno);
Это будет продукт 101 в консоли.
Возьмите свою строку JSON и пропустите ее через JSON.parse().
Прочтите https://www.geeksforgeeks.org/converting-json-text-to-javascript-object/