欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于json字符串與實(shí)體之間的嚴(yán)格驗(yàn)證代碼

 更新時(shí)間:2016年11月10日 16:24:11   作者:怪才博士  
在一個(gè)項(xiàng)目中要求嚴(yán)格驗(yàn)證傳入的json字符串與定義的 類匹配,否則不記錄。后來查了好多資料才弄明白,下面小編給大家分享下關(guān)于json字符串與實(shí)體之間的嚴(yán)格驗(yàn)證,感興趣的朋友一起看看吧

在一個(gè)項(xiàng)目中要求嚴(yán)格驗(yàn)證傳入的json字符串與定義的 類匹配,否則不記錄。感覺這個(gè)嚴(yán)格驗(yàn)證找了好多資料才找到,可能用的人比較少,特摘出來給大家分析,直接上代碼了:

using Newtonsoft.Json;

首先引用 Newtonsoft.Json.Schema

主函數(shù)調(diào)用

private static void Main(string[] args)
{
string Json = @"{ 
'Email':'58', 
'Active':true, 
'CreateDate':'2015-12-11 9:24:33'
}";
try
{
/*這里是通過指定的實(shí)體創(chuàng)建一個(gè)規(guī)則來驗(yàn)證傳入的json是否符合要求*/
JSchemaGenerator generator = new JSchemaGenerator(); 
JSchema schema = generator.Generate(typeof(Account)); 
JObject person = JObject.Parse(Json); 
IList<string> messages;
bool valid = person.IsValid(schema, out messages);
if (!valid)
{
foreach (string message in messages)
{
Console.WriteLine(message); 
}
}
else
{
Console.WriteLine("OK"); 
}
}
catch (JsonSerializationException ex)
{
Console.WriteLine(ex.Message);
}
/*
這段代碼的也是設(shè)置捕獲異常的,只是大范圍的驗(yàn)證,如果匹配不上則給予默認(rèn)值。上面的是嚴(yán)格判斷
JsonConvert.DeserializeObject<Account>(Json, new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Error,
Error = eventHandler 
});
*/
Console.Read();
}
public static void eventHandler(object sender, ErrorEventArgs args)
{
var currentError = args.ErrorContext.Error.Message;
Console.WriteLine(currentError);
args.ErrorContext.Handled = true;
}

實(shí)體類

using System; 
public class Account
{
public string Email { get; set; }
public bool Active { get; set; }
public DateTime CreateDate { get; set; } 
}

以上所述是小編給大家介紹的關(guān)于json字符串與實(shí)體之間的嚴(yán)格驗(yàn)證,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)

    JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)

    JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • JS代碼防止SQL注入的方法(超簡單)

    JS代碼防止SQL注入的方法(超簡單)

    下面通過兩個(gè)方面給大家介紹js代碼防止sql注入的方法,非常簡單實(shí)用,感興趣的朋友參考下吧
    2016-04-04
  • JS實(shí)現(xiàn)滑動條案例

    JS實(shí)現(xiàn)滑動條案例

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)滑動條案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 微信小程序使用車牌號輸入法的示例代碼

    微信小程序使用車牌號輸入法的示例代碼

    這篇文章主要介紹了微信小程序使用車牌號輸入法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • JavaScript 實(shí)現(xiàn)類的多種方法實(shí)例

    JavaScript 實(shí)現(xiàn)類的多種方法實(shí)例

    JavaScript 實(shí)現(xiàn)類的多種方法實(shí)例,需要的朋友可以參考一下
    2013-05-05
  • JS如何通過FileReader獲取.txt文件內(nèi)容

    JS如何通過FileReader獲取.txt文件內(nèi)容

    今天小編就為大家分享一篇JS如何通過FileReader獲取.txt文件內(nèi)容,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • js實(shí)現(xiàn)短信發(fā)送倒計(jì)時(shí)功能(正則驗(yàn)證)

    js實(shí)現(xiàn)短信發(fā)送倒計(jì)時(shí)功能(正則驗(yàn)證)

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)短信發(fā)送倒計(jì)時(shí)功能,包含正則驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JS中async/await實(shí)現(xiàn)異步調(diào)用的方法

    JS中async/await實(shí)現(xiàn)異步調(diào)用的方法

    這篇文章主要介紹了async/await實(shí)現(xiàn)異步調(diào)用的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • uni-app多環(huán)境部署解決方案詳解

    uni-app多環(huán)境部署解決方案詳解

    uni-app可通過process.env.NODE_ENV判斷當(dāng)前環(huán)境是開發(fā)環(huán)境還是生產(chǎn)環(huán)境,下面這篇文章主要給大家介紹了關(guān)于uni-app多環(huán)境部署的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • JavaScript枚舉選擇jquery插件代碼實(shí)例

    JavaScript枚舉選擇jquery插件代碼實(shí)例

    這篇文章主要介紹了JavaScript枚舉選擇jquery插件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評論