【发布时间】:2020-01-27 13:20:07
【问题描述】:
我尝试从我的 json 响应中删除 k__BackingField。 我使用 Newtownsoft.Json 和 .net core 3.1。
例子是:
"k__BackingField": "00000000-0000-0000-0000-000000000000",
"<Violations>k__BackingField": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"<ResultType>k__BackingField": 5,
"<LockOwner>k__BackingField": null
}
所以,数据模型类是:
[JsonObject(MemberSerialization.OptIn)]
[Serializable]
public class DataModel
{
// [JsonProperty("uid")]
[DataMember]
public string uid;
// [JsonProperty("name")]
[DataMember]
public string name;
/*etc fields*/
}
我尝试使用 Serializable,尝试将其删除,但没有任何反应。
如果我删除 MemberSerialization.OptIn 我有递归错误(我的其他字段)。
那么,我该如何修复k__?
谢谢!
【问题讨论】:
-
请提供MCVE ... 至于您的
DataModel,它只有uid和nameFIELDS(不是属性),这显然不应该发生k__BackingField<..>来自自动属性 -
还有
Serializableattrubute 看起来很可疑……不应该是DataContract吗? (这来自第一个谷歌结果......) -
k__BackingField用于自动实现的属性,你没有;您确定在public string ResultType {get;set;}这样的属性上没有[field: DataMember]吗?但是:不,显示的代码不会创建该json - 请您显示一个实际上会执行此操作的对象,理想情况下是您对Json进行的确切调用.NET -
您确定您没有使用
MemberSerialization.Fields和自动属性吗?如果是这样:不要那样做? -
@MarcGravell 这是因为
Serializable属性......问题已经被问到......谷歌搜索的第一个结果k__BackingField json
标签: c# json serialization .net-core json.net