Convertir ceci: à ceci: p> J'ai trouvé une réponse qui fait presque ce dont j'ai besoin: recherche d'un objet à l'intérieur du JSON . Mais cette réponse ne m'aidait pas car ce n'est qu'au premier niveau (un objet JSON). Mon problème est au deuxième niveau (objet JSON dans un objet JSON). Merci d'avance! P> p> {"BLE89-A0-123-384": "3", "BLE10-A0- 123-321 ":" 4 "} code> c'est ... {id: quantité} p>
3 Réponses :
Vous devez effectuer ce qui suit:
var newJSON = {};
for (var i = 0; i < oldJSON.items.length; i++) {
newJSON[oldJSON.items[i].id] = oldJSON.items[i].quantity;
}
.length () code> doit être .Longueur code>. La longueur est une propriété non une fonction.
Cela aide si vous ne pensez pas aux objets JSON en tant qu'objets JSON. Une fois que vous avez exécuté une chaîne JSON via JSON.PARSE, il s'agit d'un objet JavaScript natif.
en JavaScript, il y a deux façons d'accéder aux objets. P>
LE DOT La notation va comme ceci p>
Voir le point? Vous pouvez utiliser cela pour accéder à n'importe quel objet propriété em> (qui peut être un autre objet dans JavaScript, tant qu'il a un nom de notation de points valide). Vous ne pouvez pas utiliser de caractères comme comme notation de point, mais permet d'autres caractères, tels que Utiliser ces notations est utile car nous pouvons accéder aux propriétés imbriquées. P> Maintenant, passons à votre objet JSON ... p> Vous pourriez vouloir me brasser sur le format JSON vous-même, mais dans votre exemple, voici quelques indices ... P> Vous savez probablement que Quand nous exécutons votre chaîne via Vous pouvez maintenant l'utiliser comme objet JavaScript natif. Ce que vous recherchez est une propriété imbriquée dans les "articles". P> car myObject.name code> p> - code>, . Code> et le caractère d'espace. P> Notation de support (peut être un autre nom) h1>
myObject ["nom de référence"] code> p> - code> et le caractère spatial .. fait exactement la même chose chose. p> myobj.foo.bar.baz () Code> P> {"éléments": [{"id": "BLE89-A0-123-384", "Poids": "100", "Quantité": 3, "Stock": 0},
{"id": "Ble10-A0-123-321", "Poids": "100", "Quantité": 4, "Stock": 0}], Code> P> { code> signifie le début d'un objet. (Gardez à l'esprit que toute votre chaîne JSON est un objet lui-même.) P> } code> signifie la fin d'un objet. P> "variable" (avec des citations! IMPORTANT EN JSON, mais pas lorsque vous accédez à des objets JavaScript) attribue une propriété à votre objet. p> : code> est l'opérateur d'affectation en JSON et Objets JavaScript.
Rien à droite du : code> est la valeur que vous attribuez à la propriété à gauche. P> , code> signifie que vous démarrez une nouvelle propriété dans un objet. p> [] code> avec , code> virgules à l'intérieur signifie un tableau. p> json.parse (chaîne) code>, nous obtiendrons un objet qui ressemble à ceci ... p> var myResponse = json.parse (réponse); Code> p> varements var = myResponse.items; // sinon vous pouvez simplement utiliser myResponse.items code> p> éléments code> est un tableau d'objets em>, nous devrons itérer à travers Pour convertir l'objet existant en un nouvel objet. P> {
"BLE89-A0-123-384" : 3, //additional properties designated by comma
"BLE10-A0-123-321" : 4 // The last key/value in an object literal CANNOT
// have a comma after it!
}
Wow, c'est une réponse beaucoup plus complète que prévu pour la question: D
Vous pouvez essayer avec: quantités code> sera alors l'objet {"BLE89-A0-123-384": 3, "BLE10 -A0-123-321 ": 4} code>. foreach code> est une méthode native de Array Objets en JavaScript qui vous permet de parcourir leurs éléments. Vous voudrez peut-être mettre cette pièce de code à l'intérieur d'une fonction: p>
{"BLE89-A0-123-384", "3"; "Ble10-A0-123-321", "4"} code> Ce n'est même pas un objet valide, il doit être une paire de valeur clé.Qu'est-ce que ne i> vous savez comment faire? Savez-vous comment accéder à un membre d'un tableau ou d'un objet? Savez-vous comment itérer un tableau? Savez-vous comment créer un objet et assigner de nouvelles paires de clés / valeur? Il serait bon de savoir exactement ce que vous avez besoin d'aide.
@am pas je suis ... Je ne savais pas quel chemin je devais prendre pour aller du début à la fin.