JSON-un düzgün sahələrə sahib olduğunu necə yoxlamaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
Müxtəlif yanaşmalar mövcuddur:
-
Sahələrin mövcudluğunun yoxlanması: Gözlənilən sahələr üzrə keçin və onların JSON-da olub-olmadığını yoxlayın.
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"'{field}' sahəsi yoxdur" return True, "Bütün gözlənilən sahələr mövcuddur" except json.JSONDecodeError: return False, "Yanlış JSON" except Exception as e: return False, f"Xəta: {e}" # İstifadə nümunəsi json_data = '{"name": "Alice", "age": 30}' expected = ["name", "age", "city"] result, message = check_json_fields(json_data, expected) print(result, message) # False 'city' sahəsi yoxdur 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 Bütün gözlənilən sahələr mövcuddur -
JSON Schema istifadə edərək: JSON Schema JSON strukturunun doğrulanması üçün istifadə olunan lüğətdir. Bu, mürəkkəb strukturlar üçün ən etibarlı və çevik yanaşmadır.
from jsonschema import validate, SchemaError # JSON doğrulama üçün schema schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": "integer", "minimum": 0}, "city": {"type": "string"} }, "required": ["name", "age"] # Zəruri sahələr } def validate_json_with_schema(json_data, schema): try: validate(instance=json_data, schema=schema) return True, "JSON schema-ya uyğundur" except SchemaError as e: return False, f"Schema xətası: {e.message}" except Exception as e: return False, f"Doğrulama xətası: {e.message}" # İstifadə nümunəsi 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 schema-ya uyğundur invalid_data = {"name": "Bob"} # age yoxdur result_invalid, message_invalid = validate_json_with_schema(invalid_data, schema) print(result_invalid, message_invalid) # False Doğrulama xətası: 'age' tələb olunan xüsusiyyətdir invalid_type_data = {"name": "Charlie", "age": "twenty"} # age düzgün tipdə deyil result_type_invalid, message_type_invalid = validate_json_with_schema(invalid_type_data, schema) print(result_type_invalid, message_type_invalid) # False Doğrulama xətası: 'twenty' 'integer' tipində deyil -
Tip və struktur yoxlaması üçün kitabxanaların istifadəsi: Bəzi dillərdə məlumat strukturunu daha deklarativ şəkildə təyin etməyə imkan verən kitabxanalar mövcuddur.
- Python:
Pydantic,Marshmallow. - JavaScript:
Joi,Yup.
- Python:
-
Özəl yoxlamaların yazılması: Xüsusi hallar və mürəkkəb loqika üçün öz yoxlama funksiyalarınızı yaza bilərsiniz.
Yanaşma seçimi JSON strukturunun mürəkkəbliyinə, tələblərə və istifadə olunan texnologiya yığınına bağlıdır. JSON Schema ən tövsiyə olunan yanaşmadır və etibarlılığı təmin edir.