dramaling-vocab-learning/backend/DramaLing.Api/Services/AI/Utils/SynonymsParser.cs

36 lines
1.1 KiB
C#

using System.Text.Json;
namespace DramaLing.Api.Services.AI.Utils;
/// <summary>
/// AI 生成同義詞的解析工具類
/// </summary>
public static class SynonymsParser
{
/// <summary>
/// 解析 AI 生成的同義詞 JSON 字串為字串陣列
/// </summary>
/// <param name="synonymsJson">JSON 格式的同義詞字串,如 ["word1", "word2"]</param>
/// <returns>解析後的同義詞陣列</returns>
public static string[] ParseSynonymsJson(string? synonymsJson)
{
if (string.IsNullOrWhiteSpace(synonymsJson))
return Array.Empty<string>();
try
{
var synonyms = JsonSerializer.Deserialize<string[]>(synonymsJson);
return synonyms ?? Array.Empty<string>();
}
catch (JsonException)
{
// JSON 解析失敗,返回空陣列
return Array.Empty<string>();
}
catch (Exception)
{
// 其他異常,返回空陣列
return Array.Empty<string>();
}
}
}