У меня есть CSV, который я анализирую, чтобы преобразовать в JSON и затем, наконец, загрузить в Azure blob.
Это пример CSV, который я читаю и анализирую. Каждая строка будет иметь свой собственный файл JSON.
humidity_sensor, sensor1, {"temp":"22.3","batt":"3.11","ss":"28","humidity":"52.6","dp":"12.144704512672"}
humidity_sensor, sensor1, {"batt":"3.14","ss":"16","humidity":"56.9","timestamp":1556568624,"temp":"21.7","dp":"12.784662018281"}
humidity_sensor, sensor1, {"pressure":"5.14","prop2":"16","current":"56.9","temp":"21.7","dp":"12.784662018281"}
Это модель, к которой я хочу сериализовать ее:
public class SensorModel
{
[JsonProperty("sensorId")]
public string SensorId { get; set; }
[JsonProperty("Inbound_data")]
public Inbound Inbounddata { get; set; }
[JsonProperty("ts")]
public DateTime Ts { get; set; }
}
public class Inbound
{
}
Таким образом, вывод имеет следующий формат:
{
"sensorId":"sensor1",
"data_in":{
},
"ts":"2020-02-11T18:07:29Z"
}
Значение в Inbound - JSON от CSV, которое не является постоянным и будет изменяться с каждой строкой CSV.
SensorModel sensorModel = new SensorModel
{
SensorId = sensorId,
Ts = utcTimestamp,
Inbounddata = new Inbound
{
}
};
Но так как я не уверен, что будет в этом узле, я не могу определить свойства во входящем классе.
Я попытался использовать Dynami c следующим образом:
dynamic data = JObject.Parse(values[r, 4].ToString());
Правая часть этого выражение это значение из CSV.
Как я могу динамически выяснить, какие свойства требуются для входящего узла. Я мог бы просто обновить модель, чтобы установить входящее свойство как JObject, а затем при создании модели присвоить ему значение, но мне нужно преобразовать все значения входящего узла, посмотрев в базу данных.
Есть ли способ достичь этого?