Junior
Kā pārbaudīt, vai JSON satur pareizos laukus?
sobes.tech AI
Atbilde no AI
Ir vairākas pieejas:
-
Lauku klātbūtnes pārbaude: Pārliecinieties, vai gaidītie lauki ir JSON.
import json def check_json_fields(json_string, expected_fields): try: data = json.loads(json_string) for field in expected_fields: if field not in data: return False, f"Lauks '{field}' nav" return True, "Visi gaidītie lauki ir" except json.JSONDecodeError: return False, "Nepareizs JSON" except Exception as e: return False, f"Kļūda: {e}" # Piemērs json_data = '{"name": "Alice", "age": 30}' expected = ["name", "age", "city"] result, message = check_json_fields(json_data, expected) print(result, message) # False Lauks 'city' nav json_data_valid = '{"name": "Bob", "age": 25}' expected_valid = ["name", "age"] result_valid, message_valid = check_json_fields(json_data_valid, expected_valid) print(result_valid, message_valid) # True Visi gaidītie lauki ir -
Izmantojot JSON Schema: JSON Schema ir vārdnīca JSON struktūras validācijai. Tas ir visuzticamākais un elastīgākais pieejas veids sarežģītām struktūrām.
from jsonschema import validate, SchemaError # Schema JSON validācijai schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": "integer", "minimum": 0}, "city": {"type": "string"} }, "required": ["name", "age"] # Obligātie lauki } def validate_json_with_schema(json_data, schema): try: validate(instance=json_data, schema=schema) return True, "JSON atbilst shēmai" except SchemaError as e: return False, f"Shēmas kļūda: {e.message}" except Exception as e: return False, f"Validācijas kļūda: {e.message}" # Piemērs valid_data = {"name": "Alice", "age": 30, "city": "New York"} result_valid, message_valid = validate_json_with_schema(valid_data, schema) print(result_valid, message_valid) # True JSON atbilst shēmai invalid_data = {"name": "Bob"} # trūkst age result_invalid, message_invalid = validate_json_with_schema(invalid_data, schema) print(result_invalid, message_invalid) # False Validācijas kļūda: 'age' ir obligāts invalid_type_data = {"name": "Charlie", "age": "twenty"} # nepareizs age tips result_type_invalid, message_type_invalid = validate_json_with_schema(invalid_type_data, schema) print(result_type_invalid, message_type_invalid) # False Validācijas kļūda: 'twenty' nav 'integer' tips -
Izmantojot bibliotēkas tipu un struktūras pārbaudei: Dažas valodas ir ar bibliotēkām, kas ļauj deklaratīvi definēt datu struktūru.
- Python:
Pydantic,Marshmallow. - JavaScript:
Joi,Yup.
- Python:
-
Izveidot savas pārbaudes funkcijas: Speciāliem gadījumiem vai sarežģītai loģikai var rakstīt savas validācijas funkcijas.
Izvēle ir atkarīga no JSON struktūras sarežģītības, stingrības prasībām un izmantotajām tehnoloģijām. JSON Schema ir ieteicamākais pieejas veids drošības un atbalsta nodrošināšanai.