如何检测两次发送的Json属性

时间:2017-02-28 23:57:38

标签: c# json

鉴于json:

x

反序列化为C#动态对象时,将使用值为b的属性JsonReaderException创建对象。即使同一属性被发送两次,也不会抛出{{1}}。

有没有办法检测json字符串中是否多次发送了属性?

1 个答案:

答案 0 :(得分:0)

没有抛出JsonReaderException的原因是因为重复的密钥在JSON中是有效的。 一个快速而肮脏的解决方法是让计数器在每次设置类X属性时递增。如果是> 1,那么你知道。

public class Test 
{
    private string _x;
    private int xCounter = 0;
    public string X 
    {
        set
        {
           if(xCounter > 1) throw new Exception("DUPES");
            xCounter++;
           _x = value;
        }
        get
        {
           return _x;
        }
    }
}

如果您在反序列化后尝试再次设置X,这显然会失败。