如何在.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>

如何在.net中解析json到html

你应该创建一个类来表示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>