最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:42:25
文檔

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

在.NET中使用Newtonsoft.Json轉(zhuǎn)換,讀取,寫入的方法介紹:全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化為對(duì)象 目標(biāo)對(duì)象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目標(biāo)對(duì)象)); //把目標(biāo)對(duì)象序列化為Json字符串 stri
推薦度:
導(dǎo)讀在.NET中使用Newtonsoft.Json轉(zhuǎn)換,讀取,寫入的方法介紹:全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化為對(duì)象 目標(biāo)對(duì)象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目標(biāo)對(duì)象)); //把目標(biāo)對(duì)象序列化為Json字符串 stri

全局引用
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

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

代碼如下:


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

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


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

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

其他:
Newtonsoft.Json.JsonConvert類是非微軟提供的一個(gè)JSON序列化和反序列的開源免費(fèi)的類庫(kù)(下載網(wǎng)址是:http://www.codeplex.com/json/),它提供了更靈活的序列化和反序列化控制,并且如果你的開發(fā)環(huán)境使用的是.NET Framework3.5及以后版本的話,你就可以使用Linq to JSON,這樣一來面對(duì)一大段的數(shù)據(jù)不必一一解析,你可以使用Linq to JSON解析出你關(guān)心的那部分即可,非常方便。

參考:

http://www.cnblogs.com/gghxh/archive/2008/01/11/1035482.html
http://blog.csdn.net/zhoufoxcn/article/details/6254657

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

在.NET中使用Newtonsoft.Json轉(zhuǎn)換,讀取,寫入的方法介紹:全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化為對(duì)象 目標(biāo)對(duì)象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目標(biāo)對(duì)象)); //把目標(biāo)對(duì)象序列化為Json字符串 stri
推薦度:
標(biāo)簽: new 讀取 net
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top