C# XML -> JSON -> Объекты, форсирующие коллекции - PullRequest
0 голосов
/ 12 апреля 2020

Я строю XML строку в приложении САПР с его собственным сценарием и передаю ее в HTTPPost, это прекрасно работает.

В контроллере я считываю поток в XML документ, который я затем конвертирую в JSON и десериализацию.

Проблема, с которой я сталкиваюсь, заключается в том, что иногда один из объектов в иерархии может иметь только один объект, в этом случае на сайте только одно здание, десериализация завершается неудачей.

В Ньютон софт, вы можете заставить Array "json: Array = 'true'", но затем "do c .Load Xml (ReadString);" не может

кто-нибудь может помочь?

Спасибо

Madaxe

<Site>
<Building>
    <Floor>
    </Floor>
    <Floor>
    </Floor>
</Building>

[HttpPost("v1/PassignModels/XML")]

    public async Task<string> ReadStringDataManual()
    {
        string ReadString = null;
        try
        {
            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                ReadString = await reader.ReadToEndAsync();

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(ReadString);
                string json = JsonConvert.SerializeXmlNode(doc);


                Example NewSite = JsonConvert.DeserializeObject<Example>(json);
            }

            Console.WriteLine(ReadString);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return ReadString;
    }
...