我尝试了下面的代码来创建 json 代码,代码工作正常。
我从数据库加载值,但只有最后一个值我得到了输出。剩余值未添加。
DataTable dt = new DataTable();
var objectToSerialize = new RootObject();
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
SqlCommand command = new SqlCommand("select * from IFlicksMenu", connection);
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
objectToSerialize.contacts = new List<Cont>
{
new Cont
{
sno = dr["Cinema"].ToString(),
name = dr["Gallery"].ToString(),
address = dr["star"].ToString(),
gender = dr["video"].ToString(),
em = dr["em"].ToString(),
phone=new Phone { mobile=dr["phonone"].ToString() }
},
};
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
Response.Write(serializer.Serialize(new { item = objectToSerialize.contacts }));
}
输出是
{
"item":[
{
"phone":{
"mobile":"99528748474"
},
"sno":"ACTRESS",
"name":"ACTRESS",
"em":"scd",
"address":"ACTRESS",
"gender":"TRAILER"
}
]
}
您正在实例化里面的列表foreach
对于每次迭代,因此需要最后一次迭代。您可以在外部定义 List 对象foreach
以及里面的价值观foreach
List<Cont> ContCollection = new List<Cont>();
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
ContCollection.Add(new Cont(){
sno = dr["Cinema"].ToString(),
name = dr["Gallery"].ToString(),
address = dr["star"].ToString(),
gender = dr["video"].ToString(),
em = dr["em"].ToString(),
phone=new Phone { mobile=dr["phonone"].ToString() }
});
}
objectToSerialize.contacts = ContCollection;
JavaScriptSerializer serializer = new JavaScriptSerializer();
Response.Write(serializer.Serialize(new { item = objectToSerialize.contacts }));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)