У меня проблема со следующим (тестовым) кодом.Это дает мне ошибку «Несоответствие количества параметров» в строке
dataTable.Merge(CreateDataTableFromObject(info.GetValue(inputObject)));
Весь код выглядит так:
public object SerializeThis(DataTable dataTable1, DataTable dataTable2)
{
string jsonString = @"{'EquipmentNumber':'CP5301078','Data_General_Exp': {'Authgrp':'CP01','Objecttype':'9A1B'}}";
var jConvertObejct = (JsonConvertObject)JsonConvert.DeserializeObject(jsonString, typeof(JsonConvertObject));
var jObject = JObject.Parse(jsonString);
dataTable1 = CreateDataTableFromObject(jConvertObejct);
dataTable2 = CreateDataTableFromObject(jObject);
return jConvertObejct;
}
public DataTable CreateDataTableFromObject(object inputObject)
{
DataTable dataTable = new DataTable();
Type type = inputObject.GetType();
var properties = type.GetProperties();
PropertyInfo info;
for (int i = 0; i < properties.Length; i++)
{
info = properties[i];
if (info.GetValue(inputObject).GetType().GetProperties().Count() > 2)
dataTable.Merge(CreateDataTableFromObject(info.GetValue(inputObject)));
else
if (!dataTable.Columns.Contains(info.Name))
dataTable.Columns.Add(new DataColumn(info.Name, Nullable.GetUnderlyingType(info.PropertyType) ?? info.PropertyType));
}
return dataTable;
}
Обратите внимание, что я пытаюсь сделать то же самое с обоимиобъект JsonConvert и JObject - ошибка возникает при выполнении
CreateDataTableFromObject(object inputObject)
на объекте JObject, а не на объекте JsonConvert.
Мне нужно решение для JObject, как у меняобрабатывать некоторые неизвестные строки json, которые мне нужно вставить в DataTable (имена столбцов - это имена свойств, а значения строк - значения объектов json).Я опустил употребления.Я не вижу, чтобы на это отвечали какие-либо другие статьи stackoverflow.