为要从视图传递到控制器的特定 json 创建 class

Creating a class for a specific json to be passed from view to controller

这是我在前端使用的 json 结构,其中“books”是一个数组,因此它可以包含多个值。

{
   "name":"",
   "surname":"",
   "books":
     [
        { "book_name": "", "book_rating": "" },
        { "book_name": "", "book_rating": "" }
     ]
}

我应该创建一个包含 2 个变量 class 的列表的 class 吗?

或者我可以将 json 作为字符串接收,然后在控制器中再次将其转换为 json 吗?

感谢帮助

如果你想发送给控制器,你应该改成这样:

var data = {
   name:"",
   surname:"",
   books:
     [
      book:  { book_name: "", book_rating : "" },
      book:  {}
     ]
};

Should i create a class with a list of a 2 variables class?

我认为在阅读 JSon 文件后,您应该开始使用自己创建的 类 而不是仅使用纯字符串。无论如何,您必须将 JSon 字符串转换为对象才能在控制器 类 中处理。所以这里有两个 类 可能对你有用:

public class User
{
    public string name { get; set; }
    public string surname { get; set; }
    public List<Book> books { get; set; }
}

public class Book
{
    public string book_name { get; set; }
    public int book_rating { get; set; }
}

在这里你将如何使用你的类

        // open and read JSon file into jsonString

        // Convert json string into an object
        var user = JsonConvert.DeserializeObject<User>(jsonString);