diff --git a/backend/DramaLing.Api/Controllers/AIController.cs b/backend/DramaLing.Api/Controllers/AIController.cs index 8d4cc23..815abfc 100644 --- a/backend/DramaLing.Api/Controllers/AIController.cs +++ b/backend/DramaLing.Api/Controllers/AIController.cs @@ -536,8 +536,15 @@ public class AIController : ControllerBase { _logger.LogInformation("Using cached analysis for text hash: {TextHash}", cachedAnalysis.InputTextHash); - // 解析快取的分析結果 - var cachedResult = System.Text.Json.JsonSerializer.Deserialize(cachedAnalysis.AnalysisResult); + // 解析快取的分析結果 - 使用一致的命名策略 + _logger.LogInformation("Cache raw JSON: {CacheJson}", cachedAnalysis.AnalysisResult); + + var options = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + var cachedResult = System.Text.Json.JsonSerializer.Deserialize(cachedAnalysis.AnalysisResult, options); + _logger.LogInformation("Cache deserialized result: {CachedResult}", System.Text.Json.JsonSerializer.Serialize(cachedResult, options)); return Ok(new { diff --git a/backend/DramaLing.Api/Services/AnalysisCacheService.cs b/backend/DramaLing.Api/Services/AnalysisCacheService.cs index 0c0a7a8..fc69784 100644 --- a/backend/DramaLing.Api/Services/AnalysisCacheService.cs +++ b/backend/DramaLing.Api/Services/AnalysisCacheService.cs @@ -75,8 +75,12 @@ public class AnalysisCacheService : IAnalysisCacheService if (existing != null) { - // 更新現有快取 - existing.AnalysisResult = JsonSerializer.Serialize(analysisResult); + // 更新現有快取 - 使用一致的命名策略 + var options = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + existing.AnalysisResult = JsonSerializer.Serialize(analysisResult, options); existing.ExpiresAt = expiresAt; existing.AccessCount++; existing.LastAccessedAt = DateTime.UtcNow; @@ -89,7 +93,10 @@ public class AnalysisCacheService : IAnalysisCacheService Id = Guid.NewGuid(), InputTextHash = textHash, InputText = inputText, - AnalysisResult = JsonSerializer.Serialize(analysisResult), + AnalysisResult = JsonSerializer.Serialize(analysisResult, new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }), CreatedAt = DateTime.UtcNow, ExpiresAt = expiresAt, AccessCount = 1,