Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Json extract and use data (node.js)

How can I access this data?

Here is my Json:

 {
  "6a768d67-82fb-4dd9-9433-d83dbd2f1b78": {
    "name": "Bahut",
    "11": {
      "timestamp": 1380044486000,
      "value": "false"
    }
  },
  "4f4a65e4-c41b-4038-8f62-76fe69fedf60": {
    "name": "Vit",
    "11": {
      "timestamp": 1380109392000,
      "value": "false"
    }
  },
  "a12d22cc-240e-44d6-bc58-fe17dbb2711c": {
    "name": "Cuis",
    "11": {
      "timestamp": 1379883923000,
      "value": "false"
    }
  }
}

I'm trying to read and extract for each entries the id (xxxxxxxx-xxxx-...-xxxxxxxxx) and the "name" to put then in an array.

But I didn't manage to do.

trying :

var nameid = json.'XXXXX-....-XXXX'.name;

or replace '-' by ''

var nameid = json.XXXXXXXXX.name;

didn't work too.

like image 287
Eidas Avatar asked Jan 13 '23 07:01

Eidas


2 Answers

You need to use array-style access to get the subobject associated with the id key:

var nameid = json["a12d22cc-240e-44d6-bc58-fe17dbb2711c"].name; // or ["name"]
// nameid => "Cuis"

This is because hyphens are not a valid character for dot-style access (can't use them in variable names in JavaScript).

In order to extract all of the you will need to loop through the object, and add them to an array, like so:

var arr = [];
for (var id in json) {
    arr.push(json[id]["name"]);
}

Which will give you an array of all the names in that JSON object.

like image 68
Isaac Avatar answered Jan 21 '23 16:01

Isaac


You could use Object.keys to get an array of properties.

var js = JSON.parse(json);
var props = Object.keys(js);

var result = props.map(function(prop) {
  return {
    id: prop,
    name: js[prop].name;
  };
});

The final result is an array of objects with 2 properties: id, name

like image 42
roland Avatar answered Jan 21 '23 16:01

roland