使用Json.NET序列化对象列表

本文关键字:对象 列表 序列化 NET Json 使用 | 更新日期: 2023-09-27 18:05:42

我有一个对象模型如下,我绑定数据检索从数据库。

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;}
}

将有许多对象,因为有多个学生数据,所以我应该理想地将对象绑定到一个集合,最好是一个列表和我的要求是我应该将这个对象列表传输到另一个代码(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;
    }
}

使用Json.NET序列化对象列表

你应该试试这个:

https://surajdeshpande.com/2013/10/01/json-net-examples/

string jsonString = JsonConvert.SerializeObject(userList);

将JSON反序列化为Object:

JsonConvert.DeserializeObject<User>(jsonString);

您应该在完成从数据库加载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);