国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在.NET中使用Newtonsoft.Json轉換,讀取,寫入的方法介紹

2024-07-10 13:23:59
字體:
來源:轉載
供稿:網友
全局引用
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

//把Json字符串反序列化為對象
目標對象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目標對象));
//把目標對象序列化為Json字符串
stringJson字符串 = JavaScriptConvert.SerializeObject(目標對象);
1、引用Newtonsoft.Json.dll;
2、在項目中添加引用;
序列化和反序列在.net項目中,簡單示例

復制代碼 代碼如下:


Productproduct = newProduct();
product.Name = "Apple";
product.Expiry = newDateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = newstring[] { "Small", "Medium", "Large"};
stringoutput = JavaScriptConvert.SerializeObject(product);



注意:
一、如果需要序列化實體
1、類名必須添加[DataContract]標記;
2、類屬性添加[DataMember]標記;
二、如果有不需要序列化的字段,可以給該字段添加[JsonIgnore]標記
在Newtonsoft這個類庫中對于日期的序列化有多種方式,可以類的DataTime成員添加上對應的標記,這樣在進行序列化和反序列化時就會按照指定的方式進行,
在本例中User類(如下類)的CreateDate屬性添加的屬性是[JsonConverter(typeof(IsoDateTimeConverter))],而Birthday屬性添加的屬性是[JsonConverter(typeof(JavaScriptDateTimeConverter))],從序列化的結果可以看出來它們最終的表現形式并不一樣。

復制代碼 代碼如下:


[DataContract]
public class User
{
/// <summary>
/// 編號
/// </summary>
[DataMember]
public int UserId { get; set; }
/// <summary>
/// 用戶名
/// </summary>
[DataMember]
public string UserName { get; set; }
/// <summary>
/// 創建時間
/// </summary>
[DataMember]
[JsonConverter(typeof(IsoDateTimeConverter))]
public DateTime CreateDate { get; set; }
/// <summary>
/// 生日
/// </summary>
[DataMember]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime Birthday { get; set; }
/// <summary>
/// 相關URL
/// </summary>
[DataMember]
public List<string> Urls { get; set; }
/// <summary>
/// 薪水
/// </summary>
[ScriptIgnore]//使用JavaScriptSerializer序列化時不序列化此字段
[IgnoreDataMember]//使用DataContractJsonSerializer序列化時不序列化此字段
[JsonIgnore]//使用JsonConvert序列化時不序列化此字段
public int Salary { get; set; }
/// <summary>
/// 權利級別
/// </summary>
[DataMember]
public Priority Priority { get; set; }

public User()
{
Urls = new List<string>();
}
}



其他:
Newtonsoft.Json.JsonConvert類是非微軟提供的一個JSON序列化和反序列的開源免費的類庫(下載網址是:),它提供了更靈活的序列化和反序列化控制,并且如果你的開發環境使用的是.NET Framework3.5及以后版本的話,你就可以使用Linq to JSON,這樣一來面對一大段的數據不必一一解析,你可以使用Linq to JSON解析出你關心的那部分即可,非常方便。

參考:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 壤塘县| 荆门市| 珲春市| 枣阳市| 荆州市| 乌恰县| 庆云县| 兰州市| 岑溪市| 临颍县| 游戏| 保靖县| 马公市| 合肥市| 白城市| 凭祥市| 中山市| 香格里拉县| 甘孜| 三都| 当阳市| 高尔夫| 邓州市| 丁青县| 新昌县| 科技| 拉孜县| 峨山| 抚远县| 邯郸县| 黄梅县| 饶平县| 宝丰县| 鄢陵县| 大石桥市| 南京市| 喀喇沁旗| 栾川县| 金堂县| 福清市| 砀山县|