ForHosting KIT · Dati e file

Confronto di oggetti JSON: tutte le chiavi modificate

Un confronto testuale può rendere rumoroso un piccolo aggiornamento JSON, perché rientri, ordine delle chiavi e formattazione nascondono i dati realmente modificati.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.

Questo strumento confronta i valori analizzati, separa chiavi aggiunte, rimosse e cambiate, percorre gli oggetti annidati comuni e assegna un percorso JSON Pointer inequivocabile. Gli array mantengono l’ordine e vengono confrontati per intero. L’operazione è deterministica, non usa la rete e rifiuta array, primitive o null come valori di primo livello.

Come leggere una differenza JSON strutturale

Il risultato suddivide le differenze in raccolte di aggiunte, rimozioni e modifiche. Un’aggiunta esiste solo nell’oggetto aggiornato, una rimozione solo nell’originale e una modifica include i valori precedente e successivo. Ogni voce usa un percorso JSON Pointer che inizia con una barra: /profile/name indica name dentro profile. Una barra nel nome di una chiave diventa ~1 e una tilde diventa ~0, evitando ambiguità con i livelli annidati. Le proprietà vengono visitate in ordine per produrre risposte stabili. Il blocco counts riepiloga categorie e totale. Se tutte e tre le liste sono vuote, gli oggetti sono strutturalmente uguali anche quando il testo originale presenta rientri o ordine delle chiavi differenti.

Gestione di oggetti annidati e array

Quando la stessa chiave contiene un oggetto su entrambi i lati, il confronto scende fino alla proprietà precisa che differisce. Se cambia solo profile.active, il percorso restituito è /profile/active. Una chiave presente su un solo lato viene invece registrata una volta con il valore completo, senza espandere tutti i discendenti. Gli array sono valori JSON ordinati confrontati per intero: inserimento, eliminazione, riordino o modifica di un elemento segnala l’intera proprietà. Primitive e null vengono confrontati direttamente; anche un cambio di tipo è una modifica. Solo le due radici seguono una regola più rigida: before e after devono essere oggetti JSON non nulli.

Uso nelle revisioni e nelle automazioni

Inserisca l’oggetto originale in before e quello proposto in after. Lo strumento web opera localmente, mentre una richiesta API costa $0.002 e restituisce la stessa struttura deterministica. Può bloccare un rilascio se scompare un’impostazione protetta, verificare che cambino soltanto percorsi autorizzati o conservare una differenza compatta per gli audit. Poiché formattazione e ordine non producono falsi positivi, è adatto a configurazioni, webhook, flag, permessi e risposte normalizzate. Interpreti i percorsi come JSON Pointer e consideri anche la categoria. Per gli array riceverà i valori completi, sui quali potrà applicare regole specifiche. Una radice non valida restituisce un errore chiaro, non una differenza vuota ingannevole.

Revisionare una configurazione

Confronti la configurazione distribuita con quella candidata senza rumore di spazi o ordine delle chiavi.

Verificare l’evoluzione dei webhook

Registri i campi annidati comparsi, scomparsi o cambiati tra due esempi normalizzati.

Proteggere le impostazioni approvate

Controlli i percorsi in CI e fermi il rilascio quando cambia un’opzione protetta.

Quale formato usano i percorsi?

Ogni percorso è un JSON Pointer in stile RFC 6901: le barre nelle chiavi diventano ~1 e le tildi ~0.

L’ordine delle chiavi conta come modifica?

No. Il confronto considera chiavi e valori, quindi un altro ordine di serializzazione non genera differenze.

Come vengono confrontati gli array?

Sono valori ordinati confrontati per intero. Qualsiasi modifica, inserimento, rimozione o riordino li segnala.

Posso confrontare due array al livello principale?

No. before e after devono essere oggetti JSON non nulli; altre radici causano un errore di input.

Quanto costa una richiesta API?

Lo strumento web funziona gratis in locale. Ogni richiesta API usa il prezzo base pubblicato di $0.002.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/data/diff-json-objects

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/data/diff-json-objects \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"before":{"name":"Ada","profile":{"active":true,"score":8},"roles":["reader"]},"after":{"name":"Ada","profile":{"active":false,"score":8,"city":"London"},"roles":["reader","editor"]}}'
{
  "before": {
    "name": "Ada",
    "profile": {
      "active": true,
      "score": 8
    },
    "roles": [
      "reader"
    ]
  },
  "after": {
    "name": "Ada",
    "profile": {
      "active": false,
      "score": 8,
      "city": "London"
    },
    "roles": [
      "reader",
      "editor"
    ]
  }
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.diff_json_objects",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_mb25
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Leggi la documentazione completa del KIT →