Home > front end >  Parsing nested json with javascript
Parsing nested json with javascript

Time:10-27

I have some 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
    }
  }
}

I want to use javascript to print the username of username in here. It can either iterate through each thing and print the username value, or it can just take the first value because that is the username too. I can't find a good tutorial online anywhere for this. I want to make sure that I print every username and not entity. Can someone please help with this?

CodePudding user response:

Assuming your JSON variable is called data, you can extract the keys with Object.keys(data)

To iterate and get the usernames you can do

Object.keys(data).forEach(key => {
   let username = data[key].username;
});

CodePudding user response:

Please understand that JSON stands for JavaScript Object Notation. In other words, JSON represents a Javascript object. Convert the JSON to a Javascript object.

E.g.

var object1 = JSON.parse('{"rollno":101, "name":"Mayank", "age":20}');

So in the above code you can get the rollno by accessing the object1

console.log(object1.rollno);

It would product 101 in the console.

Take your JSON string and run it through JSON.parse().

Please read https://www.geeksforgeeks.org/converting-json-text-to-javascript-object/

  • Related