eclipsesource / eclipsesource/jsonforms

Square brackets in property name causes object to be destructured to many nested objects

Offen
#2,178 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug core
Vorherrschende Sprache
TypeScript
Sterne
2.7k
Forks
424
Ø Merge
17 T. 8 Std.
Gemergte PRs (30 T.)
1

Beschreibung

### Describe the bug

Names of properties cannot have square brackets inside. After changing initial data property name gets restructured in nested object.

### Expected behavior

Structure of data object does not change

### Steps to reproduce the issue

1. Clone `https://github.com/mateuszkula/jsonforms-react-error`
2. Run `npm ci` & `npm run start`
3. Go to `localhost:3000`
4. Find Input for label `A` -> type 1 in field `Min`
5. Data changes from:
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1
}
}
```
to
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 0,
"max": 1
}
}
```
6. Modify `Min` field for `A B C D` and type some number there. Data changes from:
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1
}
}
```
to
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1,
"b": {
"c": {
"d": {
"min": 3
}
}
}
}
}
```

### Screenshots

Before entering data:
![image](https://github.com/eclipsesource/jsonforms/assets/30259869/ef846713-b5e5-4c7f-b853-985d0338db29)

After changing data:
![image](https://github.com/eclipsesource/jsonforms/assets/30259869/16ad8733-4b71-4d4e-a562-5f32c20d8e16)

### In which browser are you experiencing the issue?

Firefox 117.0.1 (64-bit) / Chrome Version 116.0.5845.187 (Official Build) (arm64)

### Which Version of JSON Forms are you using?

v3.1.0

### Framework

Core, React

### RendererSet

Material

### Additional context

I think quite similar issue is described in `https://github.com/eclipsesource/jsonforms/issues/2102` but i could not force it to behave in same wrong way like in my example.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Klone die verlinkte jsonforms-react-error-Reproduktion, führe `npm ci` und `npm run start` aus und befolge die gemeldeten Min-field-Schritte für `A` und `A B C D`. Untersuche, warum das Bearbeiten dieser Felder `a[b][c][d]` in verschachtelte Objekte ändert; abgeschlossen ist die Untersuchung, wenn das Datenobjekt den literalen Eigenschaftsnamen und die Struktur beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
react, typescript
Bereich
frontend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.