Как я могу изменить часть json obj в javascript?

Скажем, у меня есть следующий JSON:

{ «doc»: { «left_margin»: 2, «right_margin»: 2, «receipt»: { «emptyLine»: «», «id»: 133, «name»: «depositOnline», «line»: [{ «dataItem»: [{ «ref»: «depositAmount», «label»: «receipt.deposit.amountLabel» }, { «ref»: «currency» }] }, { «dataItem»: [{ «ref»: «depositCustomerName», «label»: «transfer.confirm.name» }, { «ref»: «currency» }] }], «dataItem»: [{ «text»: «receipt.deposit.explanationDone» }, { «ref»: «depositNumber», «label»: «receipt.deposit.numberLabel.deposit» }, { «ref»: «depositResolve» }], «portion»: [{ «id»: 1 }, { «id»: 4 }, { «id»: 5 }, { «id»: 2 }] }, «portion»: [{ «id»: 1, «lineFiller»: { «char»: «-» }, «align»: «center», «name»: «header», «line»: { «dataItem»: [{ «ref»: «date» }, { «ref»: «time» }, { «ref»: «trace», «label»: «traceLabel» }] }, «dataItem»: [{ «ref»: «bankName», «print_type»: «bold» }, { «ref»: «terminalName» }, { «ref»: «terminalId» }, { «ref»: «receiptTitle» }] }, { «id»: 2, «lineFiller»: { «char»: «-» }, «name»: «footer», «dataItem»: { «ref»: «motto» } }, { «id»: 4, «name»: «cardNumber», «dataItem»: { «ref»: «cardNumber», «label»: «cardNumberLabel» } }, { «id»: 5, «name»: «rrnNumber», «dataItem»: { «ref»: «rrn», «label»: «rrnLabel» } }] } }

Я хочу найти все порционные ключи в этом JSON и заменить их тела в квитанциях на определения порций. Есть ли функция для чего-то подобного? Я сам пробовал некоторые решения, я написал рекурсивный метод, но он не сработал. Может ли кто-нибудь дать мне представление о том, как это сделать?

Покажите нам результат, который вы хотите получить, и нам будет проще вам помочь   —  person Setareh    schedule 13.03.2020

Вы можете попробовать мой итератор JSON github.com/eltomjan/ETEhomeTools/blob/ master / HTM_HTA / для нерекурсивного обхода вашего JSON — довольно сложный вариант использования, например здесь stackoverflow.com/questions/58008420/ Он также имеет 2 предопределенных итератора DepthFirst и BreadthFirst.   —  person Setareh    schedule 13.03.2020

Если приведенный выше JSON — data, код data.doc.receipt.portion.map(keys=>data.doc.portion.filter(def=> def.id==keys.id)[0]) должен делать то, что вам нужно.   —  person Setareh    schedule 13.03.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!