## System.Runtime.Serialization.Json.JsonReader does not handle illegal xml chars in json field names

_Submitted by a community member on 2014-03-01 01:39 UTC_

Normally json fields are converted to xml as follows:

\<field2 type="string"\>hai\</field2\>

But when json field names contain chars that are legal json but illegal xml, the .NET json reader builds out the element as follows to generate legal xml:

\<a:item xmlns:a="item" item="$field1" type="string"\>hai\</a:item\>

The mono version does not do this and blows up. Running Mono on Ubuntu 12.04 LTS Server Edition 64 bit.

public void should\_parse\_field\_names\_with\_illegal\_xml\_chars()
    var json = new MemoryStream(Encoding.ASCII.GetBytes(
        "{" +
            "\"$field1\": \"oh\"," + 
            "\"field2\": \"hai\"" + 

    var document = XDocument.Load(JsonReaderWriterFactory.CreateJsonReader(json, new XmlDictionaryReaderQuotas()));

    "<root type=\"object\">" + 
        "<a:item xmlns:a=\"item\" item=\"$field1\" type=\"string\">oh</a:item>" + 
        "<field2 type=\"string\">hai</field2>" + 


* * *

_Reference: <https://bugzilla.xamarin.com/show_bug.cgi?id=18105>_