Как изменить значение соответствующего свойства с помощью json-запроса?

#javascript

#javascript

Вопрос:

Я использую json-query, потому что он позволяет мне находить по пути внутри объекта JSON.

После того, как я нахожу его, я хочу заменить значение новым значением, и я ожидал, что это повлияет на строку, но это не так.

Есть ли способ сделать это с помощью json-запроса? или перестроить этот JSON снова из объекта, но я не могу найти способ в документах.

 const jsonQuery = require("json-query");

var data = {
  people: [
    { name: "Matt", country: "NZ" },
    { name: "Pete", country: "AU" },
    { name: "Mikey", country: "NZ" }
  ]
};

const b = jsonQuery("people[country=NZ].name", {
  data: data
});

console.log({ b });

b.value = "bla";

console.log({ b }); // value === 'bla'

console.log({ data }); // value === 'Matt'
  

codesandbox.io

Ответ №1:

Вы можете изменить запись в reference подсвойстве, возвращаемом запросом:

 const b = jsonQuery("people[country=NZ].name", {
  data: data
});

b.references[0].name = 'bla';
  

Смотрите Пример проверки концепции: https://codesandbox.io/s/wonderful-kirch-g7zy2