国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#: Json序列化和反序列化,集合為什么多出來一些元素?

這篇具有很好參考價值的文章主要介紹了C#: Json序列化和反序列化,集合為什么多出來一些元素?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如下面的例子,很容易看出問題:

如果類本身的無參構(gòu)造函數(shù),?就添加了一些元素,序列化,再反序列化,會導(dǎo)致元素增加。

如果要避免,必須添加:

new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Replace }

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

class Program3
{
    static void Main(string[] args)
    {
        Product product = new Product();
        Console.WriteLine("Orginal Count:{0}", product.ListCustomer.Count);
        string json = JsonConvert.SerializeObject(product);  //序列化
        Product result1 = JsonConvert.DeserializeObject<Product>(json);
        Console.WriteLine("Result Count:{0}", result1.ListCustomer.Count);
        Product result2 = JsonConvert.DeserializeObject<Product>(json,
                    new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Replace });
        Console.WriteLine("Result2 Count:{0}", result2.ListCustomer.Count);
        Console.WriteLine("--------------------------------");
        P2 p = new P2();
        p.ListCustomer = new List<int>();
        p.ListCustomer.AddRange(new int[]{ 1,2,3,4 });
        Console.WriteLine("Orginal Count:{0}", p.ListCustomer.Count);
        string json2 = JsonConvert.SerializeObject(p);  //序列化
        P2 p2Result = JsonConvert.DeserializeObject<P2>(json2);
        Console.WriteLine("Result Count:{0}", p2Result.ListCustomer.Count);

        Console.WriteLine("END");
        Console.Read();
    }

    public class Product
    {
        public Product()
        {
            ListCustomer = new List<int> { 1, 2, 3, 4 };
        }
        public List<int> ListCustomer { get; set; }
    }

    public class P2
    {
        public List<int> ListCustomer { get; set; }
    }
}

C#: Json序列化和反序列化,集合為什么多出來一些元素?,C#,c#,microsoft文章來源地址http://www.zghlxwxcb.cn/news/detail-686711.html

到了這里,關(guān)于C#: Json序列化和反序列化,集合為什么多出來一些元素?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Untiy Json和Xml的序列化和反序列化

    Untiy Json和Xml的序列化和反序列化

    Ps: Unity C# Json 序列化換行 效果: 引用:

    2024年02月13日
    瀏覽(23)
  • ASP.NET中JSON的序列化和反序列化

    ? JSON是專門為瀏覽器中的網(wǎng)頁上運行的JavaScript代碼而設(shè)計的一種數(shù)據(jù)格式。在網(wǎng)站應(yīng)用中使用JSON的場景越來越多,本文介紹ASP.NET中JSON的序列化和反序列化,主要對JSON的簡單介紹,ASP.NET如何序列化和反序列化的處理,在序列化和反序列化對日期時間、集合、字典的處理。

    2024年02月15日
    瀏覽(21)
  • 【探索Linux】P.30(序列化和反序列化 | JSON序列化庫 [ C++ ] )

    【探索Linux】P.30(序列化和反序列化 | JSON序列化庫 [ C++ ] )

    當(dāng)談到網(wǎng)絡(luò)編程時,序列化和反序列化是非常重要的概念。在上一篇文章中,我們已經(jīng)了解了在Linux環(huán)境下實現(xiàn)簡單的TCP網(wǎng)絡(luò)程序的基礎(chǔ)知識。本文將繼續(xù)探討序列化和反序列化,這些概念對于在網(wǎng)絡(luò)上傳輸數(shù)據(jù)以及跨網(wǎng)絡(luò)通信至關(guān)重要。通過深入了解序列化和反序列化,我

    2024年04月08日
    瀏覽(34)
  • Spring Boot 中使用 ObjectMapper 進(jìn)行 JSON 序列化和反序列化

    在 Java 中,可以使用各種 JSON 序列化和反序列化工具將 Java 對象轉(zhuǎn)換為 JSON 字符串或者將 JSON 字符串轉(zhuǎn)換為 Java 對象。其中,Jackson 庫是比較常用的 JSON 序列化和反序列化工具之一,它提供了 ObjectMapper 類,用于將 Java 對象轉(zhuǎn)換為 JSON 字符串,或者將 JSON 字符串轉(zhuǎn)換為 Java 對象

    2024年02月14日
    瀏覽(20)
  • cJSON(C語言JSON)庫(適用于嵌入式序列化和反序列化)

    cJSON(C語言JSON)庫(適用于嵌入式序列化和反序列化)

    JSON與序列化和反序列化 JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,它以易于閱讀和編寫的文本形式表示結(jié)構(gòu)化數(shù)據(jù)。JSON 格式廣泛用于將數(shù)據(jù)從一個應(yīng)用程序傳輸?shù)搅硪粋€應(yīng)用程序,特別是在Web應(yīng)用程序中,因為它與JavaScript兼容,容易在客戶端和服務(wù)器之間進(jìn)

    2024年02月04日
    瀏覽(43)
  • c#示例-json序列化和json樹

    c#示例-json序列化和json樹

    由于指針和引用類型的存在,在運行中的程序中,數(shù)據(jù)不一定是整塊的。 可能東一塊西一塊散落在內(nèi)存的各個地方。 序列,是指連續(xù)且有序的一個整體。序列化就是把數(shù)據(jù)變?yōu)檫B續(xù)有序整體的過程。 經(jīng)過這樣處理后的數(shù)據(jù)就可以方便的進(jìn)行傳輸和儲存了。 json是一種文本數(shù)

    2024年02月16日
    瀏覽(36)
  • 【Linux】序列化和反序列化

    【Linux】序列化和反序列化

    在網(wǎng)絡(luò)編程中,直接使用 結(jié)構(gòu)體 進(jìn)行數(shù)據(jù)傳輸會出錯,因為 本質(zhì)上socket無法傳輸結(jié)構(gòu)體 ,我們只有將結(jié)構(gòu)體裝換為字節(jié)數(shù)組,或者是字符串格式來傳輸,然后對端主機收到了數(shù)據(jù),再將其轉(zhuǎn)化為結(jié)構(gòu)體,這就是序列化和反序列化的過程! 序列化 (Serialization)是將對象的狀態(tài)

    2024年02月10日
    瀏覽(19)
  • 什么是序列化和反序列化?

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是兩種常用的數(shù)據(jù)交換格式,用于在不同系統(tǒng)之間傳輸和存儲數(shù)據(jù)。 JSON是一種輕量級的數(shù)據(jù)交換格式,它使用易于理解的鍵值對的形式表示數(shù)據(jù)。JSON數(shù)據(jù)結(jié)構(gòu)簡單明了,易于讀寫和解析,是基于JavaScript的一種常用數(shù)據(jù)

    2024年02月09日
    瀏覽(29)
  • Unity-序列化和反序列化

    序列化是指把對象轉(zhuǎn)換為字節(jié)序列的過程,而反序列化是指把字節(jié)序列恢復(fù)為對象的過程。序列化最主要的用途就是傳遞對象和保存對象。 在Unity中保存和加載、prefab、scene、Inspector窗口、實例化預(yù)制體等都使用了序列化與反序列化。 1 自定義的具有Serializable特性的非抽象、

    2024年01月24日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包