如果 Json 字符串具有带有前导 / 尾随空格的成员名称,是否可以将 Json 字符串反序列化为对象。我正在使用 Newtonsoft.Json 作为我的序列化库。
例如是我的对象类型:
public class Sample
{
public ComplexType Default {get; set;}
}
public class ComplexType
{
public IEnumerable<string> Data {get; set;}
}
在类中使用 [JsonProperty (PropertyName =“Default”)] 装饰“Default”成员不是一个选项,因为理论上我可以有任意数量的前导和 / 或尾随空格。
{
"Default ":
{
"Data":["data1","data2"]
}
}
请让我知道,如果有任何开箱即用的支持在 Newtonsoft.Json 或其他方法来解决这个问题。
更新:更新的对象结构和预期的解决方案。
您不能只更改 JObject 属性名称,它是只读的。您只能使用此代码创建一个新的 json 对象,例如
var sampleObj=new JObject();
var jsonPd=JObject.P(json);
foreach (var prop in jsonPd.Properties())
sampleObj.Add(prop.Name.Trim(),prop.Value);
Sample sample=sampleObj.ToObject<Sample>();
更新
如果你的对象非常复杂,你只需要添加代码来迭代子对象。或者使用 RegEx 来修复一个 json 字符串是有意义的。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(68条)