我的数据是混乱的,当使用json.net序列化数据表
本文关键字:json net 序列化 数据表 数据 混乱 我的 | 更新日期: 2023-09-27 17:49:15
我正在使用json.net序列化我的数据表。我将这个json字符串(结果)传递给视图,以在无序列表中呈现它。但是json格式在result
中乱了DataAccess
public static string getClinic()
{
string sproc = "getClinic";
return callProcedure(sproc);
}
public static string callProcedure(string sproc)
{
DataTable ds = null;
try
{
using (SqlConnection sqlConn = new SqlConnection(sqlConnString))
{
SqlCommand cmd = new SqlCommand(sproc, sqlConn);
cmd.CommandType = CommandType.StoredProcedure;
sqlConn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
ds = new DataTable();
adapter.Fill(ds);
string json = JsonConvert.SerializeObject(ds);
return json;
}
}
catch (Exception ex)
{
throw ex;
}
}
控制器public ActionResult Index()
{
QueryModel qModel = new QueryModel {
tblClinic = new Clinic(),
};
return View("Index", qModel);
}
视图<ul>
@foreach (var p in Model.tblClinic.clinic){
<li>@p</li>
}
</ul>
但是我的数据是这样混乱的:
[
{
"
c
o
d
e
"
:
0
,
"
n
a
m
e
"
:
"
A"
}
,
{
...
}
我期望是:
code: 0, name: A
code: 1, name: B
…
我需要在循环之前先反序列化json对象吗?
更多信息:我的模型
public class QueryModel
{
public Clinic tblClinic { get; set; }
}
我的域
public class Clinic
{
public string clinic { get; set; }
public Clinic() {
this.clinic = Data.getClinic();
}
}
我需要在循环之前先反序列化json对象吗?
是的,很明显。在循环之前,您需要先反序列化json对象。否则,循环string
只会在每一步产生一个char
。
类中的反序列化可能类似于:
public class RootObject // you have to set the class name
{
public int code { get; set; }
public string name { get; set; }
}
然后在View中,你可以像下面这样循环:
<ul>
@foreach (RootObject p in JsonConvert.DeserializeObject<List<RootObject>>(Model.tblClinic.clinic))
{
<li>code: @p.code, name: @p.name</li>
}
</ul>