JSON Slå Sammen
Slå sammen flere JSON-objekter til ett
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
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.
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.
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):
Slått sammen 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.