public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, Encoding?encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose?onClose) { XmlJsonReader reader = new XmlJsonReader(); reader.SetInput(buffer, offset, count, encoding, quotas, onClose); return(reader); }
/// <summary> /// Constructor with KnownTypes specified /// </summary> /// <param name="stream">Input reader stream</param> /// <param name="knownTypes">List of types to reflect from</param> public ODataJsonReader(Stream stream, Type[] knownTypes) : base(stream, knownTypes) { // reader = JsonReaderWriterFactory.CreateJsonReader(stream, XmlDictionaryReaderQuotas.Max); reader = new XmlJsonReader(stream, XmlDictionaryReaderQuotas.Max); }
public static XmlDictionaryReader CreateJsonReader(Stream stream, Encoding?encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose?onClose) { XmlJsonReader reader = new XmlJsonReader(); reader.SetInput(stream, encoding, quotas, onClose); return(reader); }
private static string Convert(string xml, string rootPath) { var xmlReader = new XmlTextReader(new StringReader(xml)); var jsonReader = new XmlJsonReader(xmlReader, rootPath); var textReader = new TextJsonReader(jsonReader); return(textReader.ReadToEnd()); }
protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, DateTime[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); int actual = 0; while (actual < count && reader.IsStartElement(JsonGlobals.itemString, string.Empty)) { array[offset + actual] = JsonReaderDelegator.ParseJsonDate(reader.ReadElementContentAsString(), _dateTimeFormat); actual++; } return(actual); }
protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, byte[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); int actual = 0; while (actual < count && reader.IsStartElement(JsonGlobals.itemString, string.Empty)) { array[offset + actual] = ToByte(reader.ReadElementContentAsInt()); actual++; } return(actual); }
internal void WriteArray(XmlWriter writer, byte[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); writer.WriteAttributeString(string.Empty, JsonGlobals.typeString, string.Empty, JsonGlobals.arrayString); for (int i = 0; i < count; i++) { writer.WriteStartElement(JsonGlobals.itemString, string.Empty); writer.WriteAttributeString(string.Empty, JsonGlobals.typeString, string.Empty, JsonGlobals.numberString); writer.WriteValue((int)array[offset + i]); writer.WriteEndElement(); } }
protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, DateTime[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); int num = 0; while ((num < count) && reader.IsStartElement("item", string.Empty)) { array[offset + num] = JsonReaderDelegator.ParseJsonDate(reader.ReadElementContentAsString()); num++; } return(num); }
internal void WriteArray(XmlWriter writer, byte[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); writer.WriteAttributeString(string.Empty, "type", string.Empty, "array"); for (int i = 0; i < count; i++) { writer.WriteStartElement("item", string.Empty); writer.WriteAttributeString(string.Empty, "type", string.Empty, "number"); writer.WriteValue((int)array[offset + i]); writer.WriteEndElement(); } }
public void ProcessingInstructionsTest() { const string xml = @" <?statusCode 200?> <?header Foo=""bar""?> <?header Baz=""qux""?> <Foo> <Bar>Baz</Bar> </Foo>" ; var xmlReader = new XmlTextReader(new StringReader(xml)); var jsonReader = new XmlJsonReader(xmlReader); jsonReader.ReadProcessingInstructions(); var textReader = new TextJsonReader(jsonReader); var result = textReader.ReadToEnd(); Assert.AreEqual("Foo=\"bar\"", jsonReader.ProcessingInstructions["header"][0]); Assert.AreEqual("Baz=\"qux\"", jsonReader.ProcessingInstructions["header"][1]); Assert.AreEqual("200", jsonReader.ProcessingInstructions["statusCode"][0]); Assert.AreEqual("{\"Foo\":{\"Bar\":\"Baz\"}}", result); }