Odmítání duplicitních členů JSON
Odmítněte duplicitní členy JSON v libovolné hloubce namísto zachování poslední hodnoty.
import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)| Před použitím zkontrolujte | Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu. |
|---|---|
| Modely | Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně. |
| Projekt | Ověřte rovnocenně escapované klíče a literály NaN či Infinity, ale dovolte stejný název v oddělených objektech. |
import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)Zahrňte odmítaný JSON do smlouvy aplikace
KeySentra nabízí programátorské prostředí pro Windows k diskusi o změnách zdroje s připojeným modelem AI. Parsovací úloha má začít pravidly přijímání dat aplikací, nikoli jen žádostí o čtení JSON. Otevřete složku projektu a určete, kde text vstupuje do parseru a kde se parsovaný objekt stává důvěryhodnými daty aplikace.
Můžete například požadovat odmítání opakovaných členů objektu místo tichého ponechání hodnoty. Zahrňte do diskuse vnořené objekty a klíče ekvivalentní po dekódování escape sekvencí a vysvětlete hlášení odmítnutých vstupů volajícím. Cílem je kontrolovatelná změna načítací cesty; prostředí se samo nestává parserem JSON aplikace.
Navržené úpravy čtěte spolu s testy odlišujícími nejednoznačný vstup od platného opakování napříč různými objekty. Pokud smlouva odmítá nestandardní číselné konstanty, ověřte je. Spusťte případy projektovými nástroji a zkontrolujte výsledek parseru i chování volajícího, aby přísnější zpracování vstupu nečekaně nezměnilo očekávanou klientskou chybu v neošetřené selhání.
KeySentra podporuje připojení koncových bodů kompatibilních s OpenAI nebo Anthropic s přihlašovacími údaji podle potřeby. Nefiltrovaný model AI může být jednou z možností dodaných koncovým bodem. Označení neurčuje pravidla parseru ani nezaručuje nefiltrované používání služby. Kapacitu kontextu, podporu nástrojů i vlastní provozní podmínky nadále určuje model a server.
Otázky ke zpřísnění přijímání JSON
Které příklady duplicit pomohou při kontrole?
Zahrňte opakovaný klíč v jednom objektu, vnořenou duplicitu a escape zápisy dekódované na stejné jméno. Přidejte také samostatné objekty, které stejný klíč používají oprávněně. Návrh má tyto případy rozlišovat podle stanovených pravidel.
Má se odmítat každý opakovaný název členu?
Rozsah stanovte pečlivě: opakované názvy v jednom objektu se liší od stejného názvu v samostatných objektech. Požádejte model o prozkoumání sledování hranic objektů parserem a ověřte, že aplikace nadále přijímá platné vnořené struktury.
Proč po zpřísnění parsování kontrolovat volající kód?
Nové případy odmítnutí se musí dostat do očekávané odpovědi nebo chybové větve aplikace. Ukažte volající kód v rozhovoru a otestujte jeho chování. Správné odhalení nejednoznačnosti nestačí, pokud je následné selhání jinde v požadavku zpracováno chybně.
Mohu jako testovací data použít produkční vstupy?
Upřednostněte zmenšené vstupy zbavené citlivých údajů, které zachovají relevantní strukturu klíčů a číselné případy. Nastavený koncový bod přijímá sdílený kontext a připojené nástroje mohou mít jiné cíle. Zbytečné příklady nesmějí obsahovat zákaznická data ani přihlašovací údaje.
KeySentra · Aktualizováno 2026-10-25