C# 如何在asp.net mvc中使用3数组获取json数据
我是asp.net开发的新手,我不知道如何使用多数组获取json数据并将其转换为3个模型? 例子: -阵列1 ln、阵列2 wn和阵列3漫画 -模型1 ln,模型2 wn,模型3漫画C# 如何在asp.net mvc中使用3数组获取json数据,c#,json,asp.net-mvc-5,C#,Json,Asp.net Mvc 5,我是asp.net开发的新手,我不知道如何使用多数组获取json数据并将其转换为3个模型? 例子: -阵列1 ln、阵列2 wn和阵列3漫画 -模型1 ln,模型2 wn,模型3漫画 { "LN": [ { "Name": "Mahouka Koukou no Rettousei", "Authors": "Satou Tsutomu", "Artits": "Ishida Kana", "Year": "2011",
{
"LN": [
{
"Name": "Mahouka Koukou no Rettousei",
"Authors": "Satou Tsutomu",
"Artits": "Ishida Kana",
"Year": "2011",
"Volume": 29,
}
],
"WN": [
{
"Name": "Chiyu Mahou no Machigatta Tsukaikata ~Senjou wo Kakeru Kaifuku Youin~",
"Authors": "Kurokata, くろかた",
"Artits": "KeG",
"Year": "2014",
"Chapter": 236,
}
],
"Manga": [
{
"Name": "Tensei Shitara Slime Datta Ken",
"Authors": "Fuse",
"Artits": "Kawakami Taiki",
"Year": "2015",
"Chapter": 60,
}
]
}
我用jsonutils获得这个
公共类LN
{
公共字符串名称{get;set;}
公共字符串作者{get;set;}
公共字符串Artits{get;set;}
公共字符串年份{get;set;}
公共int卷{get;set;}
}
公共班
{
公共字符串名称{get;set;}
公共字符串作者{get;set;}
公共字符串Artits{get;set;}
公共字符串年份{get;set;}
公共int章{get;set;}
}
公共级漫画
{
公共字符串名称{get;set;}
公共字符串作者{get;set;}
公共字符串Artits{get;set;}
公共字符串年份{get;set;}
公共int章{get;set;}
}
公开课范例
{
公共IList LN{get;set;}
公共IList WN{get;set;}
公共IList漫画{get;set;}
}
获取3个列表:漫画、ln、wn,并通过控制器在视图中使用此列表。
但是我不知道如何选择json中的数组。这是一个非常丰富的模型,可以随时进行传递,但是如果它确实是您需要/想要做的,那么您将创建一个视图模型,它由
LN
的集合、WN
的集合和Manga
的集合组成,然后传过去。比如:
public class MangasViewModel{
public List<WN> WN{get;set;}
public List<LN> LN {get;set;}
public List<Manga> Manga {get;set;}
}
公共类MangasViewModel{
公共列表WN{get;set;}
公共列表LN{get;set;}
公共列表漫画{get;set;}
}
必须将Json数据反序列化到对象。为此,您可以使用包。首先,将模型放在根类中,然后用类转换它们
公共类模型
{
公共IEnumerable LN{get;set;}
公共IEnumerable WN{get;set;}
公共IEnumerable漫画{get;set;}
}
用法
var model = JsonConvert.DeserializeObject<Model>(jsonString);
var model=JsonConvert.DeserializeObject(jsonString);
您的json数据是字符串?您可以使用它将json转换为c类。这是链接。@abhi是更好的选择,因为JSON2Charp不创建根类。在jsonutils中,我得到这个:添加请求,你能解释我怎么用这个吗?我不明白为什么你有一个viewmodel,因为我使用mvc而不是mvvm,您能否解释一下,在mvc asp.net和php与mysql中使用json时,ist是如何不同的。您仍然经常使用mvc创建viewmodels,因为不同的视图需要使用稍微不同版本的模型。在这里的示例中,您有3个“模型”,但您希望将它们组合在一起并返回它们以用于此特定视图。这就是为什么要使用“viewmodel”的原因。它是关于匹配我想要做的事情,我想要做的是为每个列表选择一个全选,并将一个按名称选择作为主键,就像在mysql中一样。这是我第一次使用asp.net,我很难理解json作为bdd是如何工作的。听起来你要进入第二个问题了。你应该发布一个新的问题。如果我理解正确,json转换后我会有一个字符串,但在我如何正确分离并将其放入我的3 listl?@Dr.LexLab之后,答案就完成了。您将3个列表放在模型类中,现在可以使用它们了。如果这不是你的答案,我真的很困惑。
public class Model
{
public IEnumerable<LN> LN { get; set; }
public IEnumerable<WN> WN { get; set; }
public IEnumerable<Manga> Manga { get; set; }
}
var model = JsonConvert.DeserializeObject<Model>(jsonString);