如何在.net中解析json到html
本文关键字:json html net | 更新日期: 2023-09-27 18:03:52
我使用的MVC模板从。net,我可以显示我的json,但现在我想解析它到html,最好在表中,所以它看起来更好。
我从我的homecontroller。cs中获取json到我的View,也就是About。CSHTML,但它只是json字符串,所以看起来很糟糕。
public class HomeController : Controller
{
public JsonResult TestJson()
{
var client = new WebClient();
var response = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));
var someObject = JsonConvert.DeserializeObject(response);
return new JsonResult() { Data = someObject, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
public ActionResult About()
{
var client = new WebClient();
var json = client.DownloadString(new Uri("http://localhost:8080/projecten/api/leerlingen"));
//parse json
ViewBag.Message = json;
return View();
}
}
这是json
[{"inschrijvingsNummer":"0001","naam":"John Smith","email":"john.smith@example.com","evaluatieNummer":"270"},
{"inschrijvingsNummer":"0002","naam":"Joe Bloggs","email":"joe.bloggs@example.com","evaluatieNummer":"370"}]
用。net转换成html,我把它显示在这个页面(About.cshtml)
@{
ViewBag.Title = "Evaluaties";
}
<h2>@ViewBag.Title.</h2>
<p>@ViewBag.Message</p>
你应该创建一个类来表示json数组中的数据。
public class FancyPerson
{
public string InschrijvingsNummer { get; set; }
public string Naam { get; set; }
public string Email { get; set; }
public string EvaluatieNummer { get; set; }
}
,当你从HTTP调用中获得json字符串(,其中包含一个项目数组)时,将其反序列化为该类的集合。
var items = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<FancyPerson>>(json);
ViewBag.Message = items;
现在在你的视图中,你只需要将这个ViewBag项目转换为FancyPerson
对象的列表。您可以遍历项并在表行中显示它。
@{
var items = (List<FancyPerson>) ViewBag.Message;
}
<table>
@foreach (var item in items)
{
<tr>
<td>@item.Naam</td>
<td>@item.Email</td>
</tr>
}
</table>