【问题标题】:How to Reverse JSON.Stringify from Controller using C#如何使用 C# 从控制器反转 JSON.Stringify
【发布时间】:2023-03-29 03:28:01
【问题描述】:

我将表单数据作为 JSON.Stringify($("ourForm").serializeArray()) 发送(我找不到任何其他方式将表单发送到控制器)

那么如何在 Controller 端使用 c# 反转这个 Stringify 呢?

字符串是这样的(视图中有2个问题模块):

"[{\"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\":\ "\"},{\"名称\":\"A\",\"值\":\"\"},{\"名称\":\"B\",\"值\":\ "\"},{\"name\":\"C\",\"value\":\"\"},{\"name\":\"D\",\"value\":\ "\"},{\"name\":\"E\",\"value\":\"\"},{\"name\":\"correct_answer\",\"value\":\ "\"}]"

视图模型:

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; }
}

【问题讨论】:

  • 你如何将它作为 json 内容或表单数据发送?您应该发布您尝试过的内容以及为什么它不起作用。
  • 我添加了字符串和 ViewModal。我真的什么都没试过。我需要 C# 中 JSON.Stringify 的反向版本。如果您需要更多详细信息,可以转到stackoverflow.com/questions/56467236/…

标签: c# jquery asp.net


【解决方案1】:

这可以通过Newtonsoft.Json 来实现。最简单的方法是创建一个 POCO 来反序列化(尽管如果需要,使用 dynamic 类型反序列化可能会变得很棘手)。

[Example Here]

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
*/

【讨论】:

  • 大神,谢谢您的回答。最近几天对我来说一直很痛苦。非常感谢!
猜你喜欢
  • 2013-01-15
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多