c# - 如何将字符串数组反序列化为类 []?
问题描述
我的 ajax 将以下数组发布到控制器
{"checkedValues":["{ \"o\": 1, \"v\":1}","{ \"o\": 1, \"v\":2}"]}
控制器将数据读取为字符串数组
public IActionResult Filter([FromBody] Rootobject checkedValues = null)
{
}
在哪里
public class Rootobject
{
public string[] checkedValues { get; set; }
}
如何将数据反序列化为数组
public class Filter
{
public int o { get; set; }
public int v { get; set; }
}
我尝试了以下方法,但没有成功
public class Rootobject
{
public Filter[] checkedValues { get; set; }
}
解决方案
我以前见过这个:JSON 中的 JSON。这通常是一个错误。
作为一种解决方法,您需要双重反序列化:
public class Rootobject
{
public string[] checkedValues { get; set; }
}
public class Filter
{
public int o { get; set; }
public int v { get; set; }
}
var values = JsonConvert
.DeserializeObject<Rootobject>(json)
.checkedValues
.Select(JsonConvert<Filter>)
.ToList();
推荐阅读
- ios - EZRecorder 在 iPhone X 上调用 ExtAudioFileWrite 时崩溃
- xamarin - 如何从我的 Xamarin 资源中选择图像?
- search-engine - Lucidworks Fusion - 很多应用程序好吗?
- bash - 如何将 stderr 和 stdout 都通过管道传输到同一个文件,将 stderr 着色为红色而不是 stdout?
- r - R / quantstrat / applyStrategy
- java - 使用 Service Stub 调用带有 HTTP 标头 Spring Java 的 SOAP 服务
- pandas - Python Tkinter 在类之间继承 DataFrame
- iis - 如何将 WSO2 身份服务器放在我的站点上?删除 localhost 并将其公开
- javascript - d3如何在缩放和平移时将文本绑定到视口的右上角
- php - 在mysql中选择数组