JSON utilities

JSON utilities

JSON (de) serialiseringsramme.

Rammene som presenteres her er noe basert pa Go’s & # 8220; json & # 8221; pakke (spesielt omitempty funksjonalitet).

klasse acme.jose.json_util. Felt (jsonnavn, standard = Ingen, omitempty = False, dekoder = Ingen, encoder = Ingen) [kilde] ¶

JSON objektfelt.

enkoder (dekoder) er en callable som aksepterer en enkelt parameter, dvs. en verdi som skal kodes (dekodes) og returnerer den serialiserte (deserialiserte) verdien. Ved feil bor det oke SerializationError (DeserializationError).

Merk at dekoderen bare skal utfore delvis serialisering.

json_name (str) & # 8211; Navn pa feltet nar det er kodet til JSON. standard & # 8211; Standardverdien (brukes nar den ikke finnes i JSON-objekt). omitempty (bool) & # 8211; Hvis True og feltverdien er tom, vil den ikke bli inkludert i det serialiserte JSON-objektet, og standard vil bli brukt til deserialisering. Ellers, hvis False, felt anses som pakrevd, vil verdien alltid bli inkludert i det serielle JSON-objektet, og det ma ogsa v re tilstede ved deserialisering.

Er den angitte verdien betraktet som & # 8220; tom & # 8221; for dette feltet?

Dette er nyttig for underklasser som kanskje vil overstyre definisjonen av a v re tom, f.eks. for noen flere eksotiske datatyper.

Slett verdien i utgang?

Beskriver for a endre dekoderen pa JSON objektfelt.

Beskriver for a endre koderen pa JSON objektfelt.

Dekode en verdi, eventuelt med kontekst JSON objekt.

Kode inn en verdi, eventuelt med kontekst JSON-objekt.

Rekursivt deserialiserer til uforanderlige typer (acme.jose.util.frozendict i stedet for dict (), tuple () i stedet for liste ()).

Standard (passthrough) encoder.

klasse acme.jose.json_util. JSONObjectWithFieldsMeta [kilde] ¶

Metaklass for JSONObjectWithFields og dens underklasser.

Det sorger for at for alle klasser cls med __metaclass__ settes til JSONObjectWithFieldsMeta:

Alle felter (attributter av typen Felt) i klassdefinisjonen blir flyttet til cls._fields-ordboken, hvor nokler er feltattributtnavn og verdier er felt selv. cls .__ slots__ er utvidet med alle feltattributtnavn (dvs. ikke Field.json_name). Originale cls .__ slots__ er lagret i cls._orig_slots.

Som folge av at for et feltattributtsnavn some_field, vil cls.some_field v re en sporbeskrivelse og ikke en forekomst av feltet. For eksempel:

Som en implementeringsnotat arver denne metaklassen fra abc.ABCMeta (og ikke den vanlige typen) for a redusere metaklassekonflikten (ImmutableMap og JSONDeSerializable, foreldre til JSONObjectWithFields, bruk abc.ABCMeta som metaklasse).

klasse acme.jose.json_util. JSONObjectWithFields (** kwargs) [kilde] �

JSON objekt med felt.

Fa standardfeltverdier.

Kode inn et enkelt felt.

errors.SerializationError & # 8211; hvis feltet ikke kan v re serialiserte feil. Feil & # 8211; hvis feltet ikke ble funnet.

Serialiser felt til JSON.

Deserialiser felt fra JSON.

acme.jose.json_util. encode_b64jose (data) [kilde] ¶

Kod JOSE Base-64-feltet.

Dekode JOSE Base-64-feltet.

data (unicode) & # 8211; storrelse (int) & # 8211; Nodvendig lengde (etter dekoding). minimum (bool) & # 8211; Hvis det er sant, blir storrelsen behandlet som minimumskrav, i motsetning til noyaktig likestilling.

Dekoder hexlified-feltet.

verdi (unicode) & # 8211; storrelse (int) & # 8211; Nodvendig lengde (etter dekoding). minimum (bool) & # 8211; Hvis det er sant, blir storrelsen behandlet som minimumskrav, i motsetning til noyaktig likestilling.

Kodesertifikat som JOSE Base-64 DER.

Dekode JOSE Base-64 DER-kodet sertifikat.

Kode inn CSR som JOSE Base-64 DER.

Dekode JOSE Base-64 DER-kodet CSR.

JSON objekt med type.

Type objektet. Underklasser ma overstyre.

Feltnavn brukes til a skille forskjellige objekttyper.

Underklasser vil trolig matte overstyre dette.

Typer registrert for JSON deserialisering.

Registrer klasse for JSON deserialisering.

Fa den registrerte klassen for jobbjobb.

Fa JSON serialiserende objekt.

Deserialiser ACME-objekt fra gyldig JSON-objekt.

&kopiere; Opphavsrett 2015-2015, La oss kryptere prosjekt. Revisjon e2ab940a.