其他, 原创

ASP.NET的JSON的序列化和反序列化

ASP.NET 利用DataContractJsonSerializer序列化和反序列化

public T JsonDeserialize(string jsonString)
{
    if (!string.IsNullOrEmpty(jsonString))
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        T obj = (T)ser.ReadObject(ms);
        ms.Close();
        return obj;
    }
    else
    {
        return default(T);
    }
}

public string JsonSerializer(T t)
{
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
    MemoryStream ms = new MemoryStream();
    ser.WriteObject(ms, t);
    string jsonString = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    return jsonString;
}

将字符串转为数组并json序列化

string usersString = "zhangsan,lisi,wangwu";
string[] sArray = usersString.Split(',');
List<ChatUserName> listUser = new List<ChatUserName>();
for (int i = 0; i < sArray.Length; i++)
{
    listUser.Add(new ChatUserName() { name = sArray[i] });
}
usersJson = JsonSerializer(listUser);

将json字符串反序列化为List数组

List<ChatUserName> chatUserList = JsonDeserialize<List<ChatRooms>>(chatUserJson);

页面中显示每个用户的名字

foreach(ChatUserName chatUserName in chatUserList){
   //chatUserName.name 这个就是用户的名字
  //chatUserName.nickname 就是用户的名称,显然这里只用的name,不存在nickname
}

定义 ChatUserName类

public class ChatUserName
{
    public string name { get; set; }
    public string nickname { get; set; }
}

(673)

Related Post