如何使用列表并将其作为JSON对象返回?



我目前有一个类ErrorEntity,它包含各种类型的文件错误。

public class ErrorEntity
{
public List<string> WordPictureErrors { get; set; }
public List<string> WordTableErrors { get; set; }
}    

我还有其他类来分析Office文件的传入XML数据,并将识别出的错误存储在上面的列表中。

Class IdentifyWordPictureErrors
{
errorEntity.WordPictureErrors.Add($"Picture {desc} not inline");
}
Class IdentifyWordTableErrors
{
errorEntity.WordTableErrors.Add($"Picture {desc} not inline");
}

这是最好的方法吗?或者我应该有一个单独的列表,来存储所有不同类型的错误?

public List<string> WordDocErrors { get; set; }

我如何将第一类public class ErrorEntity的信息作为JSON返回给客户端?

我如何返回一个列表public List<string> WordDocErrors { get; set; }与多个错误对象作为JSON?

谢谢!

是否将所有错误放在一个列表中或将错误分解成多个将取决于您的用例和/或您想要传递给使用ErrorEntity对象的代码或想要在表示ErrorEntity对象的序列化json中编写。如果不知道将在何处使用ErrorEntity对象,则无法提供更多建议。

关于创建ErrorEntity对象的json,您可以按照以下示例使用System.Text.Json序列化它:

ErrorEntity errorEntity = new()
{
WordPictureErrors = new()
{
"Picture error 1",
"Picture error 2"
},
WordTableErrors = new()
{
"Table error 1",
"Table error 2"
}
};
string errorEntityJsonString = JsonSerializer.Serialize(errorEntity);
// resulting in: {"WordPictureErrors":["Picture error 1","Picture error 2"],"WordTableErrors":["Table error 1","Table error 2"]}

您需要在您的实现中添加:using System.Text.Json;

如果您返回一个错误消息列表,同样的代码将适用,ErrorEntity类将只有一个属性而不是两个(根据您的示例)。

你可以在这里找到更多关于json序列化和反序列化的信息:https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-6-0

最新更新