我有一个对象模型,我正在从数据库中检索绑定数据。
public class Student
{
public virtual string serialNumber
{ set; get;}
public virtual string studentFname
{ set; get;}
public virtual string studentLname
{ set; get;}
public virtual string studentAge
{ set; get;}
}
由于存在多个学生数据,因此将存在多个对象,因此我理想地将对象绑定到集合,优选地是LIST<>。我的要求是我应该将此对象列表传输到另一个代码(Android)。我正在使用Newtonsoft.Json,我正在尝试将对象转换为json。但是,如果我想将列表传递给另一个代码,我应该将整个列表转换为Json。因此,我的返回类型应该是什么,以及如何为我的代码序列化
using Newtonsoft.Json;
public class GetData
{
public List<Student> getData()
{
List<Student> stData = new List<Student>();
Student st = new Student();
string con = "Data Source=MK-001/PC; Initial Catalog=Inventory; Persist Security Info=True; User ID=sa; Password=sqlserver;";
using (SqlConnection myConnection = new SqlConnection(con))
{
string query = "Select * from StudentData";
SqlCommand Cmd = new SqlCommand(query, myConnection);
myConnection.Open();
using (SqlDataReader reader = Cmd.ExecuteReader())
{
while (reader.Read())
{
st.serialNumber = reader["Serial Number"].ToString();
st.studentFname = reader["Student Fname"].ToString();
st.studentLname = reader["Student Lname"].ToString();
st.studentAge = reader["Student Age"].ToString();
//Is this the correct way??
var jsonObject = JsonConvert.SerializeObject(set);
stData.Add(jsonObject);
}
myConnection.Close();
}
}
//Im returning a list here. How to bind this to a json and what should be return type as per the change made?
return stData;
}
}
答案 0 :(得分:8)
你应该试试这个:
http://surajdeshpande.wordpress.com/2013/10/01/json-net-examples/
string jsonString = JsonConvert.SerializeObject(userList);
将JSON反序列化为对象:
JsonConvert.DeserializeObject<User>(jsonString);
答案 1 :(得分:2)
从数据库加载后,您应该序列化List<Student>
;
string jsonObject = JsonConvert.SerializeObject(stData);
并从您的方法返回json字符串:
public string getData()
{
// Do stuff
return jsonString // this is your List<Student> serialized to json
}
另一方面,将其反序列化为JSONObject
:
JSONArray studentList = new JSONArray(studentJson);