JSON-yhdistäminen
Yhdistä useita JSON-objekteja yhdeksi
Syöte (JSON-objektien taulukko)
Yhdistetty tulos
Mikä on JSON-yhdistäminen?
Sinulla on default.json-asetustiedosto ja production.json, joka ohittaa vain muutaman asetuksen — ja tarvitset yhden yhdistetyn tuloksen. Juuri tähän tämä työkalu on tarkoitettu. JSON:n yhdistäminen tarkoittaa kahden tai useamman objektin yhdistämistä yhdeksi. Pinnallisessa yhdistämisessä myöhemmät objektit ylikirjoittavat aiemmat yhteisten avainten kohdalta. Syvässä yhdistämisessä (Object.assign:n kaltaisilla tavoilla) sisäkkäiset objektit yhdistetään rekursiivisesti korvaamisen sijaan.
Tämä työkalu odottaa JSON-taulukkoa objekteista. Se yhdistää ne järjestyksessä joko pinnallisella tai syvällä tilalla. Tulos on yksittäinen objekti. Käsittely tapahtuu selaimessasi.
Miten työkalua käytetään
Syötä JSON-taulukko
Liitä JSON-taulukko objekteista, esim. [{"a": 1}, {"b": 2}, {"a": 3}]. Järjestys on tärkeä: myöhemmät objektit ohittavat aiemmat ristiriitaisten avainten kohdalla. Käytä Syvä tai Pinnallinen valitaksesi yhdistämistavan.
Tarkista tulos
Oikea paneeli näyttää yhdistetyn objektin. Pinnallisessa tilassa {"a": 1, "b": 2} yhdistettynä {"a": 3}:een antaa {"a": 3, "b": 2}. Syvässä tilassa sisäkkäiset objektit yhdistetään rekursiivisesti.
Kopioi tai lataa
Käytä Kopioi tai Lataa tiedostona saadaksesi tuloksen. Muotoiluun käytä JSON-muotoilutyökalua. Validointiin käytä JSON-tarkistinta.
Missä JSON-yhdistäminen auttaa
Asetustiedostojen yhdistäminen on yleinen käyttötapaus. Sinulla on default.json ja production.json; haluat yhdistää ne niin, että tuotanto ohittaa vain tarvittavat avaimet. Syvä yhdistäminen yhdistää sisäkkäiset oletusarvot rekursiivisesti. API-vastauksissa useista lähteistä tai rakentaessa objekteja mallista ympäristökohtaisilla ohituksilla yhdistäminen antaa yhden yhdistetyn objektin. JSON-muotoilutyökalu auttaa muotoilemaan tuloksen luettavuuden parantamiseksi.
JSON-yhdistämisen esimerkkejä
Tässä esimerkki kahden tilaaja-asetusobjektin yhdistämisestä. Myöhemmät objektit ohittavat aiemmat ristiriitaisten avainten kohdalla.
Esimerkki: Tilaaja-asetusten yhdistäminen
Syöte (yhdistettävien objektien taulukko):
Yhdistetty tulos:
Pinnallinen vs. syvä yhdistäminen
Pinnallinen yhdistäminen: jos molemmilla objekteilla on sama avain, myöhemmän objektin arvo korvaa aiemman kokonaan. Sisäkkäisiä objekteja ei yhdistetä; ne korvataan. Syvä yhdistäminen: sisäkkäiset objektit yhdistetään rekursiivisesti. Joten {"a": {"b": 1}} yhdistettynä {"a": {"c": 2}}:een antaa {"a": {"b": 1, "c": 2}} syvässä tilassa, mutta {"a": {"c": 2}} pinnallisessa tilassa. JavaScriptin Object.assign tekee pinnallisen yhdistämisen. Kirjastot kuten Lodash merge tekevät syviä yhdistämisiä.
JSON-määrittely määrittelee objektit avain-arvo-parien järjestämättömiksi kokoelmiksi. Yhdistämisjärjestys on tärkeä: myöhemmät arvot ohittavat aiemmat. API-vastauksissa Postmanista tai fetchistä, asetusten yhdistäminen tai oletusarvojen yhdistäminen ohituksiin on yleistä. Virallinen standardi on RFC 8259. MDN:n JSON-opas kattaa jäsentämisen ja merkkijonomuotoilun.
Usein kysyttyä
Miten yhdistän kaksi JSON-objektia JavaScriptissä?
Pinnalliseen yhdistämiseen käytä leviämisoperaattoria: {...objA, ...objB} tai Object.assign({}, objA, objB). Syvään yhdistämiseen käytä kirjastoa kuten Lodash _.merge(). Tämä työkalu käsittelee molemmat tapaukset ilman koodia.
Mikä on ero syvän ja pinnallisen yhdistämisen välillä?
Pinnallisessa yhdistämisessä, jos molemmilla objekteilla on sama avain, myöhemmän objektin arvo korvaa aiemman kokonaan — myös sisäkkäiset objektit. Syvässä yhdistämisessä sisäkkäiset objektit yhdistetään rekursiivisesti. Joten {"a": {"b": 1}} syvästi yhdistettynä {"a": {"c": 2}}:een antaa {"a": {"b": 1, "c": 2}} — molemmat avaimet säilyvät.
Miten yhdistän JSON-asetustiedostot ohituksilla?
Liitä asetukset JSON-taulukkona, oletusarvot ensin ja ohitukset viimeisenä: [defaultConfig, productionConfig]. Käytä syväyhdistämistä, jos asetuksissa on sisäkkäisiä objekteja.
Miten taulukot JSON-objekteissa käsitellään yhdistämisen aikana?
Taulukot korvataan, ei liitetä yhteen. Jos objekti A:lla on "items": [1, 2] ja objekti B:llä on "items": [3], tulos on "items": [3].
Lähetetäänkö datani palvelimelle?
Ei. Yhdistäminen tapahtuu kokonaan selaimessasi. JSON ei koskaan poistu laitteeltasi.
Liittyvät työkalut
JSON-syntaksista: json.org ja RFC 8259. JavaScript-yhdistämisestä: MDN Object.assign ja leviämissyntaksi. Syvästä yhdistämisestä Lodashissa. MDN JSON-yleiskatsaus. Katso myös jq ja Postman.