更好的方法来访问$ ref属性并在JSON.net JsonSchema类中解析它的值

时间:2014-11-17 20:25:56

标签: c# json json.net jsonschema

对于看起来像这样的JSON模式:

JsonSchema propertyJSch = JsonSchema.Parse(
@"{ ""id"" : ""pet"",
   ""properties"" : {
      ""petLicense"" : {
         ""$ref"" : ""#/definitions/petLicense""
      }
   }
}
"
);

我假设这会帮助我获得$ ref的价值:

var petLicValue = propertyJSch.Properties.First().Value;
var petLicValueDict = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(petLicValue.ToString());
var refvalue = petLicValueDict["$ref"];

但这根本不起作用。有没有办法做到这一点? 我假设JSON.Net库有一种方法可以做到这一点,但事实证明它没有。

1 个答案:

答案 0 :(得分:-1)

这是你应该做的:

  1. 将json存储为字符串值
  2. &#13;
    &#13;
    var json = @"{ ""id"" : ""pet"",
                       ""properties"" : {
                          ""petLicense"" : {
                             ""$ref"" : ""#/definitions/petLicense""
                          }
                       }
                    }";
    &#13;
    &#13;
    &#13;

    1. 使用动态
    2. 反序列化字符串

      &#13;
      &#13;
      var values = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json);
      &#13;
      &#13;
      &#13;

      1. 这是您访问该物业的方式
      2. &#13;
        &#13;
        var r = values["properties"]["petLicense"]["$ref"];
        &#13;
        &#13;
        &#13;

        希望这有帮助!