MVC 转换存储为字符串的 json
MVC convert json stored as a string
我有一个模型对象
model.ToDoList = { "completed": false, "taskId": "in01", "memberName": "JD", "dueDate": "Mon Apr 25 16:09:18 EDT 2016" }, { "completed": false, "taskId": "in02", "memberName": "JD", "dueDate": "Mon Apr 25 16:09:18 EDT 2016" }, { "completed": false, "taskId": "in16", "memberName": "JD", "dueDate": "Wed Apr 20 16:09:18 EDT 2016" } ]
这是一个存储为字符串的 json 对象。如何将字符串转换为视图中的对象?我正在尝试循环浏览该 ojbect 并显示在屏幕上
@model Gallant.Models.Enrollment
<table class="table">
<tr>
<th>Completed</th>
<th>Description</th>
<th>Member</th>
<th>Due Date</th>
<th>Upload Document</th>
</tr>
</table>
<div class="form-group">
<div class="col-md-10">
@Html.DisplayFor(model => Model.ToDoList)
</div>
</div>
显示 json 的方法之一如下所示:
在您看来,只需使用 Newtonsoft.Json 对 json 进行反序列化并迭代即可。
@{
var json= "{ 'completed': false, 'taskId': 'in01'}" ;
Dictionary<string, string> jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
foreach(var item in jsonObject){
<div>
<label>@item.Key : </label>
<span>@item.Value</span>
</div>
}
}
您可以使用
Json.NET 将其反序列化为类实例或匿名对象。下面介绍了如何对匿名类型执行此操作,定义要反序列化的属性:
var result = new[]{ new { Completed = false, TaskId = "", MemberName = "", DueDate = "" } };
result = JsonConvert.DeserializeAnonymousType(model.TodoList, result);
或者到您自己的自定义类:
var result = JsonConvert.DeserializeObject<List<MyClass>>(model.TodoList);
不过,似乎更适合在视图之外进行此解析。
首先,你应该阅读NewtonJson并从她的 http://www.newtonsoft.com/json 下载。
其次,您应该创建一个包含 JSON 中所有字段的类。喜欢这个
public class ListItem
{
public bool Completed { get; set; }
public string TaskId { get; set; }
}
那么在你的注册班中,你应该做这样的事情
public class Enrolment
{
public IEnumerable<ListItem> ToDoList{ get; private set; }
public void ApplyJSON(string json)
{
//Magic :)
YourList = JsonConvert.DeserializeObject<IEnumerable<ListItem>>(json);
}
}
最后,更换您的生产线
model.ToDoList = { "completed": false, "taskId": "in01",...}
与模型。ApplyJson("{ "已完成": false, "taskId": "in01",...}")
因此,在@Html.DisplayFor(model => Model.ToDoList)中,您将拥有ListItem项列表,您可以执行所需的任何操作。
相关文章:
- 如何使用JSON字符串中的jQuery填充下拉框
- Json字符串可以'当字符串末尾有“'时,t解码;
- jquery从2个json字符串构建一个复选框表单
- RegEx只匹配JSON字符串中最里面的数组
- json字符串的Javascript帖子:没有任何东西传入或返回
- 使用javascript在MVC视图中解析.net JSON字符串
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- 将JSON字符串转换为函数参数
- 在AngularJS中创建JSON字符串
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- Json字符串更改日期
- JSON字符串格式错误
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- C#JSON字符串到JavaScript数组
- 如何在JSON字符串中实现嵌套HTML
- 如何从带有多个对象的JSON字符串创建JSON对象
- 使用捕获组查找和替换json字符串中出现的所有短语