簡體   English   中英

JSON 序列化函數返回空字符串

[英]JSON Serialize Function returns empty string

我已經在谷歌上搜索了這個並嘗試了一切來解決這個問題,但問題仍然存在。 基本上我有這個 C# 類,我在其中對信用卡進行了建模。 我正在使用來自 Nuget Packages 的 Microsoft 的JsonSerializer來序列化這個對象,但它返回一個空字符串。 班上:

public class CreditCard
{
    public string cardNumber;
    public string cvv;
    public string owner;
    public string type;
    public string bank;
    public string expiry_date;

    public CreditCard(string cardNumber, string cvv, string owner, string type, string bank, string expiry_date)
    {
        this.cardNumber = cardNumber;
        this.cvv = cvv;
        this.owner = owner;
        this.type = type;
        this.bank = bank;
        this.expiry_date = expiry_date;
    }


    public CreditCard() 
    {

    }

    internal object getId()
    {
        return type + " " + cardNumber + " " + owner + " " + bank; 
    }
}

當我這樣做時:

CreditCard creditCard = new CreditCard(cardNumber, cvv, owner, type, bank, expiry_date);
string json = JsonSerializer.Serialize(creditCard);

json字符串為空。 請注意,參數只是來自文本框值的字符串。 我試過添加一個空的構造函數,看看這是否可能是問題,但無濟於事。 僅當我從NewtonsoftJson切換到JsonSerializer時才開始發生此錯誤,所以我不知道這是否是問題所在。 任何幫助,將不勝感激 :)

請閱讀: https : //docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to

是否明確指出:

默認情況下,所有公共屬性都被序列化。 您可以指定要排除的屬性。

目前,字段被排除在外。

因此,您需要將字段轉換為屬性。

你說切換到JsonSerializer后問題就開始了。

JsonSerializer 可能使用屬性進行序列化,但您只有字段。

注意:正如@psychoboi111 所指出的,它是: https ://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to

所以;

要么將類數據實現為屬性(無論如何,擁有公共字段都不是好習慣),

或查看 JsonSerializer 的文檔以使用字段進行序列化。

將字段更改為屬性實際上非常簡單:

public string cardNumber {get; set;}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM