Dubbele JSON-leden weigeren
Weiger dubbele JSON-leden op elk niveau in plaats van de laatste waarde te bewaren.
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)| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
|---|---|
| Modellen | Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen. |
| Project | Test gelijkwaardige ontsnapte sleutels en NaN- of Infinity-literals, maar sta dezelfde naam in aparte objecten toe. |
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)Maak afgewezen JSON onderdeel van de toepassingsafspraken
KeySentra biedt een programmeerwerkruimte voor Windows om bronwijzigingen met een verbonden AI-model te bespreken. Een parsertaak moet beginnen met de acceptatieregels van de toepassing, niet alleen met een verzoek om JSON te lezen. Open de projectmap en identificeer waar tekst de parser binnenkomt en waar een geparseerd object vertrouwde toepassingsgegevens wordt.
Je kunt bijvoorbeeld vragen herhaalde objectleden af te wijzen in plaats van stilzwijgend een waarde te behouden. Neem geneste objecten en sleutels die na het verwerken van escapes gelijk zijn op in het gesprek en leg uit hoe de aanroepende code afgewezen invoer meldt. Het doel is een beoordeelbare wijziging in je invoertraject; de werkruimte wordt daarmee niet zelf de JSON-parser van de toepassing.
Lees de voorgestelde wijzigingen naast testgegevens die dubbelzinnige invoer onderscheiden van geldige herhaling in verschillende objecten. Controleer niet-standaard numerieke constanten als de afspraak die afwijst. Voer die gevallen uit met de tools van je project en onderzoek zowel het parserresultaat als het gedrag van de aanroepende code, zodat strengere invoerverwerking een verwachte clientfout niet onverwacht verandert in een niet-afgehandelde fout.
KeySentra ondersteunt verbindingen met OpenAI-compatibele of Anthropic-endpoints, waar nodig met toegangsgegevens. Een ongefilterd AI-model kan een van de keuzes zijn die dat endpoint aanbiedt. Dat label bepaalt je parserbeleid niet en garandeert geen ongefilterd gebruik van de dienst. Het model en de server bepalen nog steeds de contextcapaciteit, toolondersteuning en hun eigen gebruiksvoorwaarden.
Vragen over strengere JSON-acceptatie
Welke duplicaatvoorbeelden helpen bij een beoordeling?
Neem een herhaalde sleutel binnen één object op, een genest duplicaat en schrijfwijzen met escapes die naar dezelfde naam worden gedecodeerd. Neem ook afzonderlijke objecten op die dezelfde sleutel terecht gebruiken. Het voorstel moet die gevallen volgens jouw beleid onderscheiden.
Moet elke herhaalde lidnaam worden afgewezen?
Beschrijf de reikwijdte zorgvuldig: herhaalde namen binnen één object verschillen van dezelfde naam in afzonderlijke objecten. Vraag het model te inspecteren hoe de parser objectgrenzen bijhoudt en controleer vervolgens of je toepassing geldige geneste structuren blijft accepteren.
Waarom de aanroepende code inspecteren na strenger parsen?
Nieuwe afwijzingsgevallen moeten het antwoord- of fouttraject bereiken dat je toepassing verwacht. Toon die aanroepende code in het gesprek en test het gedrag. Dubbelzinnigheid correct detecteren is niet genoeg als de resulterende fout elders in het verzoek verkeerd wordt afgehandeld.
Kan ik productiegegevens als testgegevens gebruiken?
Geef de voorkeur aan verkleinde gegevens waaruit gevoelige informatie is verwijderd, met behoud van de relevante sleutelstructuur en numerieke gevallen. Het ingestelde endpoint ontvangt de context die je deelt en verbonden tools kunnen aparte bestemmingen hebben. Houd klantgegevens en toegangsgegevens buiten onnodige voorbeelden.
KeySentra · Bijgewerkt 2026-10-25