Newtonsoft.Json.Converters.XmlNodeConverter.ReadJson C# (CSharp) Méthode

ReadJson() public méthode

Reads the JSON representation of the object.
public ReadJson ( JsonReader reader, Type objectType, JsonSerializer serializer ) : object
reader JsonReader The to read from.
objectType System.Type Type of the object.
serializer JsonSerializer The calling serializer.
Résultat object
    public override object ReadJson(JsonReader reader, Type objectType, JsonSerializer serializer)
    {
      // maybe have CanReader and a CanWrite methods so this sort of test wouldn't be necessary
      if (objectType != typeof(XmlDocument))
        throw new JsonSerializationException("XmlNodeConverter only supports deserializing XmlDocuments");

      XmlDocument document = new XmlDocument();
      XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable);

      XmlNode rootNode;
      
      if (!string.IsNullOrEmpty(DeserializeRootElementName))
      {
        rootNode = document.CreateElement(DeserializeRootElementName);
        document.AppendChild(rootNode);
      }
      else
      {
        rootNode = document;
      }

      if (reader.TokenType != JsonToken.StartObject)
        throw new JsonSerializationException("XmlNodeConverter can only convert JSON that begins with an object.");

      reader.Read();

      DeserializeNode(reader, document, manager, rootNode);

      return document;
    }

Usage Example

        /// <summary>
        /// Initializes a new instance of the <see cref="JsonInterpreter"/> class.
        /// </summary>
        /// <param name="source">The <see cref="IResource"/>.</param>
        public JsonInterpreter(IResource source) : base(source)
        {
            string xmlContents = string.Empty;
            using(source)
            {
                JsonReader reader = new JsonTextReader(new StreamReader(source.Stream));
                reader.Read();

                XmlNodeConverter toXml = new XmlNodeConverter();
                XmlDocument xmlDoc = (XmlDocument)toXml.ReadJson(reader, typeof(XmlDocument));
                xmlContents = xmlDoc.OuterXml;
                reader.Close();                
            }

            IResource resource = new StaticContentResource(xmlContents);

            xmlInterpreter = new XmlConfigurationInterpreter(resource);
        }
All Usage Examples Of Newtonsoft.Json.Converters.XmlNodeConverter::ReadJson