gpt4 book ai didi

c# - 将空 String 反序列化为 List

转载 作者:太空狗 更新时间:2023-10-29 23:06:16 25 4
gpt4 key购买 nike

我已经实现了一个返回 List<string> 的方法根据 json 字符串。

在我意识到我正在尝试反序列化一个空字符串之前,它运行良好。它不会崩溃,也不会引发异常。它返回 null取而代之的是一个空的 List<string> .

问题是,为了返回一个空的 List<string>,我可以触摸什么?取而代之的是 null值(value)?

return JsonConvert.DeserializeObject(content, typeof(List<string>));

编辑通用方法:

public object Deserialize(string content, Type type) {
if (type.GetType() == typeof(Object))
return (Object)content;
if (type.Equals(typeof(String)))
return content;

try
{
return JsonConvert.DeserializeObject(content, type);
}
catch (IOException e) {
throw new ApiException(HttpStatusCode.InternalServerError, e.Message);
}
}

最佳答案

您可以使用 null coalescing 来做到这一点运算符(??):

return JsonConvert.DeserializeObject(content, typeof(List<string>)) ?? new List<string>();

您也可以通过将 NullValueHandling 设置为 NullValueHandling.Ignore 来实现,如下所示:

public T Deserialize<T>(string content)
{
var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
};

try
{
return JsonConvert.DeserializeObject<T>(content, settings);
}
catch (IOException e)
{
throw new ApiException(HttpStatusCode.InternalServerError, e.Message);
}
}

关于c# - 将空 String 反序列化为 List<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com