Il modo più semplice, come menzionato nei commenti, è rimuovere il riferimento Parent
da Column
come menzionato nei commenti. Puoi quasi certamente ricodificare per fornire sia la tabella che la colonna come coppia (anziché solo la colonna) dove necessario.
Il prossimo modo più semplice è cambiare il contenuto di Parent
in Columns
da un riferimento a un oggetto di qualche tipo, sia un intero il cui valore corrisponde a un indice in un array di tabelle, o una stringa che contiene l'ID univoco o il nome del tavolo. Ciò significa che i tuoi usi di column.Parent
, se hanno bisogno di accedere all'intera tabella, dovranno essere racchiusi in una funzione che comprenda come tradurre l'indice o la stringa nel genitore.
Si noti che se i nomi delle tabelle sono univoci e questo è tutto ciò che serve da column.Parent
, allora forse convertire questi campi da un riferimento (circolare) a un altro oggetto in una stringa che identifica il nome della tabella funzionerà meglio per te.
Il prossimo metodo è di fornire un toJSON()
personalizzato per i tipi Column
in modo che alterino il campo Parent
per la serializzazione, alterandolo da un riferimento a un indice o stringa come sopra; questo avverrà solo durante JSON.stringify()
invece che durante l'uso in memoria di quel campo. Naturalmente, per fare ciò dovrai anche creare o simulare un'operazione reviver
durante / dopo JSON.parse()
che capisce i riferimenti e li converte nuovamente negli oggetti.