反序列化JSON:相同的键名 - 但是其他类型

时间:2014-01-28 13:05:37

标签: json json.net

我有2个json

{ "B1": "some string" }

{ "B1": {"I1": 1, "I2": 2 } }

是否有办法(可能通过属性)将反序列化映射到此类.NET对象。 如果字符串比数据转到B1_String,否则转到B1。

public class A
{
    public string B1_String;
    public B B1;
}

public class B
{
    public int I1; public int I2;
}

1 个答案:

答案 0 :(得分:0)


   // b1 and b2 both are your json string

   JObject jb1 = JObject.Parse (b1);
   JObject jb2 = JObject.Parse (b2);

      IDictionary <string,JToken> dicb1 = jb1.SelecToken("B1");
      IDictionary <string,JToken> dicb2 = jb2.SelecToken("B1");

      JObject final;

       if(dicb1.Count > dicb2.Count)
        {
           final=dicb1;
        }
       else 
        {
           final=dicb2;
        }

   // now use the final