Предположим, у вас есть сложный глубоко вложенный объект с 15 - 20 уровнями, и вы хотите запросить определенный узел внутри него на основе поля и изменить определенный атрибут. Как мы можем этого достичь?
Следующий пример придуман, и объект не такой сложный, как мой, и не такой глубокий, поэтому, пожалуйста, не предлагайте что-то вроде obj[phoneNumbers][0].number = somethingNew
Я использую библиотеку под названием jsonpath в следующем примере, чтобы запросить определенный узел и получить его значение с помощью выражения jsonpath.
var jp = require("jsonpath");
const obj = {
firstName: "John",
lastName: "doe",
age: 26,
address: {
streetAddress: "naist street",
city: "Nara",
postalCode: "630-0192"
},
phoneNumbers: [
{
type: "iPhone",
number: "0123-4567-8888"
},
{
type: "home",
number: "0123-4567-8910"
}
]
};
const number = jp.query(obj, "$.phoneNumbers[0].number");
console.log(number);
// outputs: [ '0123-4567-8888' ]
Спасибо.