You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中保存及后续加载Azure Document Intelligence的AnalyzeResult

C#中持久化与还原AnalyzeResult的方案

由于AnalyzeResult是Azure AI Document Intelligence SDK的内部构造类型,直接用常规JSON序列化器(比如Newtonsoft.Json或System.Text.Json)可能无法正确处理,但可以借助SDK自带的序列化工具完成持久化与还原,完全无需反射:

序列化(保存AnalyzeResult)

使用Azure.Core提供的JsonSerializer,它原生支持处理实现IJsonModel<T>接口的SDK类型,生成的JSON格式与批处理存储到容器的格式一致:

using Azure.Core.Serialization;
using System.IO;

// 假设已通过AnalyzeDocumentAsync获取到AnalyzeResult实例result
var jsonSerializer = new JsonSerializer();
using var memoryStream = new MemoryStream();

// 将result序列化为JSON流
await jsonSerializer.SerializeAsync(memoryStream, result, typeof(AnalyzeResult), CancellationToken.None);
memoryStream.Position = 0;

// 读取为字符串并保存(示例为本地文件,也可存储到Blob等)
string resultJson = await new StreamReader(memoryStream).ReadToEndAsync();
await File.WriteAllTextAsync("document-analysis-result.json", resultJson);

反序列化(还原AnalyzeResult)

同样使用JsonSerializer从JSON字符串/流中还原出完整的AnalyzeResult实例:

using Azure.Core.Serialization;
using System.IO;
using System.Text;

// 从存储读取JSON(示例为本地文件)
string savedJson = await File.ReadAllTextAsync("document-analysis-result.json");
using var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(savedJson));

// 反序列化回AnalyzeResult
var jsonSerializer = new JsonSerializer();
AnalyzeResult restoredResult = await jsonSerializer.DeserializeAsync<AnalyzeResult>(memoryStream, CancellationToken.None);

// 此时restoredResult可直接用于后续业务处理

注意事项

  • 确保项目已引用Azure.AI.DocumentIntelligence(原Azure.AI.FormRecognizer)和Azure.Core NuGet包,版本需与SDK匹配
  • 该方式生成的JSON与Azure批处理作业存储的结果格式完全兼容,可直接复用存储的批处理结果进行反序列化

内容的提问来源于stack exchange,提问作者Alan Every

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:05