refactor(frontend): 重构数据解析逻辑
- 新增 StopAndParseCapture 函数,整合停止抓包和解析数据流程 -重构 ReadRawJsonFile 函数,返回解析后的 ParsedResult 对象 - 优化数据解析流程,提高代码可读性和性能 - 调整前端 CapturePage组件,使用新的解析接口
This commit is contained in:
@@ -2,8 +2,8 @@ package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"time"
|
||||
|
||||
"equipment-analyzer/internal/capture"
|
||||
@@ -104,46 +104,29 @@ func (a *App) GetCapturedData() ([]string, error) {
|
||||
|
||||
// ParseData 解析数据为JSON
|
||||
func (a *App) ParseData(hexDataList []string) (string, error) {
|
||||
result, err := a.parserService.ParseHexData(hexDataList)
|
||||
_, rawJson, err := a.parserService.ParseHexData(hexDataList)
|
||||
if err != nil {
|
||||
a.logger.Error("解析数据失败", "error", err)
|
||||
return "", err
|
||||
}
|
||||
|
||||
jsonData, err := json.MarshalIndent(result, "", " ")
|
||||
if err != nil {
|
||||
a.logger.Error("JSON序列化失败", "error", err)
|
||||
return "", err
|
||||
}
|
||||
|
||||
a.logger.Info("数据解析完成", "count", len(result.Data))
|
||||
return string(jsonData), nil
|
||||
return rawJson, nil
|
||||
}
|
||||
|
||||
// ExportData 导出数据到文件
|
||||
func (a *App) ExportData(hexDataList []string, filename string) error {
|
||||
result, err := a.parserService.ParseHexData(hexDataList)
|
||||
result, rawJson, err := a.parserService.ParseHexData(hexDataList)
|
||||
if err != nil {
|
||||
a.logger.Error("解析数据失败", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
jsonData, err := json.MarshalIndent(result, "", " ")
|
||||
if err != nil {
|
||||
a.logger.Error("JSON序列化失败", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// 这里可以添加文件写入逻辑
|
||||
a.logger.Info("导出数据", "filename", filename, "count", len(result.Data))
|
||||
|
||||
a.logger.Info("导出数据", "filename", filename, "count", len(result.Items))
|
||||
// 简单示例:写入到当前目录
|
||||
err = utils.WriteFile(filename, jsonData)
|
||||
err = utils.WriteFile(filename, []byte(rawJson))
|
||||
if err != nil {
|
||||
a.logger.Error("写入文件失败", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -163,6 +146,20 @@ func (a *App) getStatusMessage() string {
|
||||
}
|
||||
|
||||
// ReadRawJsonFile 供前端调用,读取output_raw.json内容
|
||||
func (a *App) ReadRawJsonFile() (string, error) {
|
||||
return a.parserService.ReadRawJsonFile()
|
||||
func (a *App) ReadRawJsonFile() (*model.ParsedResult, error) {
|
||||
data, err := ioutil.ReadFile("output_raw.json")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return a.parserService.ReadRawJsonFile(string(data))
|
||||
}
|
||||
|
||||
// StopAndParseCapture 停止抓包并解析数据,供前端调用
|
||||
func (a *App) StopAndParseCapture() (*model.ParsedResult, error) {
|
||||
result, err := a.captureService.StopAndParseCapture(a.parserService)
|
||||
if err != nil {
|
||||
a.logger.Error("停止抓包并解析数据失败", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user