Inndata (array av JSON-objekter)

Slått sammen utdata

Hva er JSON-sammenslåing?

Du har en default.json-konfigurasjon og en production.json som bare overstyrer noen få innstillinger — og trenger ett sammenslått resultat. Det er nøyaktig det dette verktøyet er for. Å slå sammen JSON betyr å kombinere to eller flere objekter til ett. I en grunn sammenslåing overskriver senere objekter tidligere for delte nøkler. I en dyp sammenslåing (etter mønstre som Object.assign) kombineres nestede objekter rekursivt i stedet for å erstattes helt.

Dette verktøyet forventer et JSON-array med objekter. Det slår dem sammen i rekkefølge med enten grunn eller dyp modus. Resultatet er ett objekt. Behandling skjer i nettleseren din.

Slik bruker du verktøyet

1

Skriv inn JSON-array

Lim inn et JSON-array med objekter, f.eks. [{"a": 1}, {"b": 2}, {"a": 3}]. Rekkefølgen betyr noe: senere objekter overstyrer tidligere for konfliktnøkler. Bruk Dyp eller Grunn for å velge sammenslåingsatferd.

2

Sjekk utdata

Høyre panel viser det sammenslåtte objektet. I grunn modus gir {"a": 1, "b": 2} slått sammen med {"a": 3} resultatet {"a": 3, "b": 2}. I dyp modus slås nestede objekter rekursivt sammen.

3

Kopier eller last ned

Bruk Kopier eller Last ned for å hente resultatet. For formatering, bruk JSON-formatereren. For validering, bruk JSON-validatoren.

Hvor JSON-sammenslåing hjelper

Sammenslåing av konfigurasjonsfiler er et vanlig brukstilfelle. Du har default.json og production.json; du vil slå dem sammen slik at produksjon kun overstyrer nøklene den trenger. Dyp sammenslåing kombinerer nestede standardverdier rekursivt. For API-svar fra flere kilder, eller når du bygger objekter fra en basismal med miljøspesifikke overstyringer, gir sammenslåing ett kombinert objekt. JSON-formatereren hjelper med å formatere resultatet for lesbarhet.

Eksempler på JSON-sammenslåing

Her er et eksempel på sammenslåing av to abonnentskonfigurasjonsobjekter. Senere objekter overstyrer tidligere for konfliktnøkler.

Eksempel: Slå sammen abonnentkonfigurasjoner

Inndata (array av objekter å slå sammen):

Inndata

Slått sammen utdata:

Utdata

Grunn vs. dyp sammenslåing

Grunn sammenslåing: hvis begge objekter har en nøkkel, erstatter verdien fra det senere objektet det tidligere fullstendig. Nestede objekter slås ikke sammen; de erstattes. Dyp sammenslåing: nestede objekter slås rekursivt sammen. Så {"a": {"b": 1}} slått sammen med {"a": {"c": 2}} gir {"a": {"b": 1, "c": 2}} i dyp modus, men {"a": {"c": 2}} i grunn modus. JavaScripts Object.assign gjør en grunn sammenslåing. Biblioteker som Lodash merge gjør dype sammenslåinger.

JSON-spesifikasjonen definerer objekter som uordnede samlinger av nøkkel-verdi-par. Sammenslåingsrekkefølgen betyr noe: senere verdier overstyrer tidligere. For API-svar fra Postman eller fetch, er sammenslåing av konfigurasjon eller kombinering av standardverdier med overstyringer vanlig. Den formelle standarden er RFC 8259. MDNs JSON-guide dekker parsing og stringify.

Ofte stilte spørsmål

Hvordan slår jeg sammen to JSON-objekter i JavaScript?

For grunn sammenslåing, bruk spread-operatoren: {...objA, ...objB} eller Object.assign({}, objA, objB). For dyp sammenslåing, bruk et bibliotek som Lodash _.merge(). Dette verktøyet håndterer begge tilfeller uten kode.

Hva er forskjellen mellom dyp og grunn sammenslåing?

I en grunn sammenslåing, hvis begge objekter har samme nøkkel, erstatter verdien fra det senere objektet det tidligere fullstendig — inkludert nestede objekter. I en dyp sammenslåing kombineres nestede objekter rekursivt. Så {"a": {"b": 1}} dypt slått sammen med {"a": {"c": 2}} gir {"a": {"b": 1, "c": 2}} — begge nøkler overlever.

Hvordan slår jeg sammen JSON-konfigurasjonsfiler med overstyringer?

Lim inn konfigurasjonene som et JSON-array med standardverdier først og overstyringer sist: [defaultConfig, productionConfig]. Bruk dyp sammenslåing hvis konfigurasjonene har nestede objekter.

Hvordan håndteres arrays i JSON-objekter under sammenslåing?

Arrays erstattes, ikke sammenkobles. Hvis objekt A har "items": [1, 2] og objekt B har "items": [3], har resultatet "items": [3].

Sendes dataene mine til en server?

Nei. Sammenslåing kjører fullstendig i nettleseren din. JSON-en din forlater aldri enheten din.

Relaterte verktøy

For JSON-syntaks, se json.org og RFC 8259. For sammenslåing i JavaScript, se MDN Object.assign og spread-syntaks. For dyp sammenslåing i Lodash. MDN JSON-oversikt. Se også jq og Postman.