[英]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.