Ինչպե՞ս ստուգել, որ JSON-ը պարունակում է ճիշտ դաշտեր:
sobes.tech AI
Պատասխան AI-ից
Տարբեր մոտեցումներ կան:
-
Տարածքների առկայության ստուգում: Դյուրանցեք սպասվող տարածքները և ստուգեք դրանց ներկայությունը 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"'{field}' դաշտը բացակայում է" return True, "Բոլոր սպասվող դաշտերը առկա են" except json.JSONDecodeError: return False, "Անվավեր JSON" except Exception as e: return False, f"Սխալ: {e}" # Օգտագործման օրինակ json_data = '{"name": "Alice", "age": 30}' expected = ["name", "age", "city"] result, message = check_json_fields(json_data, expected) print(result, message) # False 'city' դաշտը բացակայում է 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 Բոլոր սպասվող դաշտերը առկա են -
JSON Schema օգտագործում: JSON Schema-ն բառարան է JSON-ի կառուցվածքը վավերացնելու համար: Սա ամենահավատարիմ և ճկուն մոտեցումն է բարդ կառուցվածքների համար:
from jsonschema import validate, SchemaError # JSON վավերացման համար սխեմա schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": "integer", "minimum": 0}, "city": {"type": "string"} }, "required": ["name", "age"] # պարտադիր դաշտեր } def validate_json_with_schema(json_data, schema): try: validate(instance=json_data, schema=schema) return True, "JSON-ը համապատասխանում է սխեմային" except SchemaError as e: return False, f"Սխալ սխեմայում: {e.message}" except Exception as e: return False, f"Վավերացման սխալ: {e.message}" # Օգտագործման օրինակ 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-ը համապատասխանում է սխեմային invalid_data = {"name": "Bob"} # բացակայում է age result_invalid, message_invalid = validate_json_with_schema(invalid_data, schema) print(result_invalid, message_invalid) # False Վավերացման սխալ: 'age' պարտադիր է invalid_type_data = {"name": "Charlie", "age": "twenty"} # սխալ տիպի age result_type_invalid, message_type_invalid = validate_json_with_schema(invalid_type_data, schema) print(result_type_invalid, message_type_invalid) # False Վավերացման սխալ: 'twenty' չի տիպի 'integer' -
Բիբլիոտեկաների օգտագործում տիպերի և կառուցվածքի ստուգման համար: Որոշ լեզուներ ունեն բիբլիոտեկներ, որոնք թույլ են տալիս ավելի դեկլարատիվ կերպով սահմանել տվյալների կառուցվածքը:
- Python:
Pydantic,Marshmallow: - JavaScript:
Joi,Yup:
- Python:
-
Անհատական ստուգումների գրառում: Մասնագիտացված դեպքերի կամ բարդ լոգիկայի համար կարող եք գրել ձեր սեփական վավերացման ֆունկցիաները:
Ընտրությունը կախված է JSON կառուցվածքի բարդությունից, խստության պահանջներից և օգտագործվող տեխնոլոգիական ստեկից: JSON Schema-ն ամենահամառոտ և հուսալի մոտեցումն է ապահովելու վստահելիություն և աջակցություն։