Запись списка объектов класса в CSV с использованием C# - PullRequest
0 голосов
/ 09 июля 2020

Я конвертирую JSON файл, возвращаемый API, в список объектов класса. Кроме того, я хочу записать этот список объектов в файл csv, используя C#.

У меня есть следующий POCO для представления этой модели:

class TestDesign
    {
        public class Model
        {
            public string version;
            public string scenarioId;
            public ModelInput input;
            public ModelOutput output;
        }

        public class ModelOutput
        {
            public double insuffInfoCount;
            public double netPresentValue;
            public ModelDetails outputBoundaries;
            public string scenarioId;            
        }

        public class ModelDetails
        {
            public double[] sampleParams1;
            public double[] sampleParams2;            
        }

        public class ModelInput
        {
            public StudyDesignInfo studyDesignInfo;
            public TreatmentInfo treatmentInfo;
        }

        public class StudyDesignInfo
        {
            public int numOfInterimAnalyses;
            public string timeUnit;
            public double[] percOfEventsObserved;
        }

        public class TreatmentInfo
        {
            public TreatmentArmsInfo treatmentArmsInfo;
        }

        public class TreatmentArmsInfo
        {
            public string treatment1Name;
            public string controlName;
        }           
    }

Я десериализую JSON в List<TestDesign> с использованием Newtonsoft. JSON JsonSerializer.

Я пробовал следующий код, но он записывает только 3 объекта, когда у меня есть список из 10 объектов TestDesign.

var expandos = JsonConvert.DeserializeObject<ExpandoObject[]>(jsonContent);

            using (var writer = new StringWriter())
            {
                using (var csv = new CsvWriter(writer, new CsvConfiguration(new System.Globalization.CultureInfo("en-US")) { Delimiter = delimiter }))
                {
                    csv.WriteRecords(expandos as IEnumerable<dynamic>);
                }

                return writer.ToString();
            }

Как я могу записать список десериализованных объектов в файл CSV? Члены массива в дочернем классе ModelDetails имеют разную длину. Любая помощь действительно заметна.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...