# @line_count 100 """JSON解析模块,提取功能点和章节信息""" import json from pathlib import Path from typing import List, Dict, Any, Optional from .parser_adapters.parser_factory import ParserFactory class JSONParser: """JSON文档解析器(门面模式)""" def __init__(self, json_path: str): """ 初始化JSON解析器 Args: json_path: JSON文件路径 """ self.json_path = Path(json_path) self.data: Dict[str, Any] = {} self.adapter = None self.load_json() def load_json(self): """加载JSON文件并创建适配器""" if not self.json_path.exists(): raise FileNotFoundError(f"JSON文件不存在: {self.json_path}") with open(self.json_path, 'r', encoding='utf-8') as f: self.data = json.load(f) # 自动检测格式并创建适配器 self.adapter = ParserFactory.create_adapter(self.data) def extract_function_points(self) -> List[Dict[str, Any]]: """ 提取功能点列表 Returns: 功能点列表,每个功能点包含: - module_name: 所属模块 - function_name: 功能名称 - description: 功能描述 - operation_steps: 操作步骤(可选) - requirement_id: 需求编号(可选) - requirement_type: 需求类型(可选) """ return self.adapter.extract_function_points() def get_document_info(self) -> Dict[str, Any]: """ 获取文档基本信息 Returns: 文档信息字典 """ return self.adapter.get_document_info() def get_sections(self) -> List[Dict[str, Any]]: """ 获取所有章节信息 Returns: 章节列表 """ return self.adapter.get_sections() def get_module_summary(self) -> List[Dict[str, Any]]: """ 获取模块摘要 Returns: 模块摘要列表 """ return self.adapter.get_module_summary()