У меня есть вложенный файл json, который я пытаюсь изменить.
Basi c структура:
info: {...}
item: [ {
name: "somename",
request: {
body: {
mode: "somemode",
raw:": {\n \"myTest\": {\n \"name\": \"myItems\"\n },\n ....and so on
Я хочу продублировать «элемент» и заполнить «сырые» ключи с некоторыми примерными значениями. Похоже, все работает нормально при изменении name
(элемента), но когда я пытаюсь присвоить новое значение секции 'raw'
- он просто заполняет все элементы массива одинаковым значением
не могли бы вы указать на мою ошибку?
Моя цель - создать 4 элемента в моем массиве элементов, каждый из которых имеет соответствующее значение myTest.
import fs from 'fs';
import data from './collections/testCollection.json';
import { raw, json } from 'express';
export class Reader {
mypath: string;
constructor(mypath:string) {
this.mypath = mypath;
}
test(): void {
//console.log(this.mypath);
}
readFile(): void {
var x = data; #all json data
var body = data.item; # this is the array of items
var firstItem = body[0];
let arrayOfOptionsForRT: string[] = ['items1', 'items2', 'items3', 'items4'];
arrayOfOptionsForRT.forEach(function(value:string) {
var tmp = Object.assign({}, firstItem); # trying to clone one full item
tmp.name = value #this changes successfully
var rawbody:string = tmp.request.body.raw;
var parsedbodyobject = JSON.parse(rawbody);
console.log('currVal:' + value);
console.log(parsedbodyobject);
parsedbodyobject.myTest.name = 'test' + value;
var newStr = JSON.stringify(parsedbodyobject);
tmp.request.body.raw = newStr;
body.push(tmp); # ------ after it is done, all my items get the same name!! :( ---
});