带有前导空格或尾随空格的成员名称的 Json反序列化

如果 Json 字符串具有带有前导 / 尾随空格的成员名称,是否可以将 Json 字符串反序列化为对象。我正在使用 Newtonsoft.Json 作为我的序列化库。

如果 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 或其他方法来解决这个问题。

更新:更新的对象结构和预期的解决方案。

0

您不能只更改 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 字符串是有意义的。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(254)
如何判断Web应用程序是否使用ReactJs
上一篇
用JavaScript显示当地时间(洛杉矶或太平洋)和纽约的时间
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(26条)