Я конвертирую 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 имеют разную длину. Любая помощь действительно заметна.
Спасибо.