c# - 如何使用 C# 从控制器反转 JSON.Stringify
问题描述
我将表单数据作为JSON.Stringify($("ourForm").serializeArray())发送(我找不到任何其他方式将表单发送到控制器)
那么如何使用 c# 在控制器端反转这个 Stringify 呢?
字符串是这样的(视图中有 2 个问题模块):
"[{\"name\":\"question_string\",\"value\":\"\"},{\"name\":\"A\",\"value\":\"\" },{\"名称\":\"B\",\"值\":\"\"},{\"名称\":\"C\",\"值\":\"\" },{\"名称\":\"D\",\"值\":\"\"},{\"名称\":\"E\",\"值\":\"\" },{\"name\":\"correct_answer\",\"value\":\"\"},{\"name\":\"question_string\",\"value\":\"\" },{\"名称\":\"A\",\"值\":\"\"},{\"名称\":\"B\",\"值\":\"\" },{\"名称\":\"C\",\"值\":\"\"},{\"名称\":\"D\",\"value\":\"\"},{\"name\":\"E\",\"value\":\"\"},{\"name\": \"correct_answer\",\"值\":\"\"}]"
视图模型:
public class Questions
{
[Display(Name ="QUESTION HERE")]
public string question_string { get; set; }
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
public string D { get; set; }
public string E { get; set; }
[Display(Name ="CORRECT ANSWER")]
public string correct_answer { get; set; }
}
解决方案
这可以通过Newtonsoft.Json
. 创建一个POCO
反序列化为最简单的方法(尽管如果需要,使用该dynamic
类型进行反序列化可能会很棘手)。
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
// Create model we can deserialize to
public class FormData
{
public string Name { get; set; }
public string Value { get; set; }
public FormData(string name, string val)
{
Name = name;
Value = val;
}
}
public class Program
{
public static void Main()
{
var formData = "[{\"name\":\"question_string\",\"value\":\"\"},{\"name\":\"A\",\"value\":\"\"},{\"name\":\"B\",\"value\":\"\"},{\"name\":\"C\",\"value\":\"\"},{\"name\":\"D\",\"value\":\"\"},{\"name\":\"E\",\"value\":\"\"},{\"name\":\"correct_answer\",\"value\":\"\"},{\"name\":\"question_string\",\"value\":\"\"},{\"name\":\"A\",\"value\":\"\"},{\"name\":\"B\",\"value\":\"\"},{\"name\":\"C\",\"value\":\"\"},{\"name\":\"D\",\"value\":\"\"},{\"name\":\"E\",\"value\":\"\"},{\"name\":\"correct_answer\",\"value\":\"\"}]";
var results = JsonConvert.DeserializeObject<List<FormData>>(formData);
foreach (var datas in results)
{
Console.WriteLine(datas.Name);
}
}
}
/* OUTPUT:
question_string
A
B
C
D
E
correct_answer
question_string
A
B
C
D
E
correct_answer
*/
推荐阅读
- docusignapi - 如何从 WebAPI 填充单选按钮组 TAB(DocuSign 模板)
- python - 通过 Python items() 循环的大 O 表示法
- linux - 尝试安装 GMAT
- python - 如何在 Python 字典中进行逻辑运算?
- mariadb - 当常量使用两次时,MariaDB 结果集中缺少行 - 一次在派生表内部,一次在外部
- github - Github 可以看到我个人标记的所有拉取请求,但不是我的团队?
- javascript - 动态生成的复选框列表性能问题 (React)
- google-bigquery - 从 BigQuery 查询 Bigtable 中的特定表
- python-3.x - OSMNx:获取多边形/建筑物的节点/角/边的坐标
- databricks - 过滤与分区列相关的列时的 Databricks 查询性能