J'ai un objet JSON qui se présente sous cette forme:

[
{
    "id": "458712e247328e4ebfafeb4d922b",
    "value": [
        1
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:39.113Z"
},
{
    "id": "1ghj78d8220734c00ab941f91b14e334b",
    "value": [
        100
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:26.819Z"
}
]

Je veux extraire la "valeur" (qui équivaut à 100 ici) du PREMIER (et seulement celui-ci). Comment puis-je faire cela dans node.js?

Ou suis-je obligé de convertir ce JSON en chaîne et de le manipuler? (avec sous-chaîne par exemple).

Je vous remercie

-2
fujitsu4 16 juil. 2015 à 22:18

2 réponses

Meilleure réponse

Convertissez json en objet javascript normal, puis vous pouvez utiliser la notation par points pour manipuler notre json, puis convertir à nouveau l'objet javascript résultant en json.

var jsonObj = [
{
    "id": "458712e247328e4ebfafeb4d922b",
    "value": [
        1
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:39.113Z"
},
{
    "id": "1ghj78d8220734c00ab941f91b14e334b",
    "value": [
        100
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:26.819Z"
}
];
var jsObj = JSON.parse(jsonObj);

var resulJsonObj = JSON.stringify(jsObj[1].value);

Au cas où vous auriez juste besoin de la valeur telle qu'elle est:

var value= jsObj[1].value;
1
sam100rav 16 juil. 2015 à 19:34

Comme l'a souligné Marc B., l'utilisation d'opérations de chaîne sur JSON est une sorte de gaspillage, car JSON vous offre déjà un accès facile aux données stockées. J'inclus un exemple pour que vous puissiez voir à quel point il est facile d'accéder à la valeur que vous recherchez.

    var data = [{
      "id": "458712e247328e4ebfafeb4d922b",
      "value": [ 1 ],
      "location": null,
      "metadata": null,
      "at": "2015-07-16T16:33:39.113Z"
    }, {
      "id": "1ghj78d8220734c00ab941f91b14e334b",
      "value": [ 100 ],
      "location": null,
      "metadata": null,
      "at": "2015-07-16T16:33:26.819Z"
    }];

    var el = document.getElementById("target");
    el.innerHTML = data[1].value;
<p>Value: <span id="target"></span>
</p>
0
Mike 16 juil. 2015 à 19:30