Solution: Drone Telemetry Processor

Review the implementation of dynamic JSON parsing combined with ExpandoObject behavior.

Solution: Drone Telemetry Processor

Review the implementation of dynamic JSON parsing combined with ExpandoObject behavior.
C# 14.0
using System.Text.Json.Nodes;
using System.Dynamic;
string telemetryJson = """{ "altitude": 150, "windResistance": 12.5, "motorSpeed": 4500 }""";
dynamic node = JsonNode.Parse(telemetryJson)!;
dynamic droneState = new ExpandoObject();
droneState.WindResistance = (double)node["windResistance"];
droneState.MotorSpeed = (double)node["motorSpeed"];
droneState.CalculateVelocity = new Func<double>(() =>
{
return (droneState.MotorSpeed / 100.0) - droneState.WindResistance;
});
double velocity = droneState.CalculateVelocity();
Console.WriteLine($"Estimated Horizontal Velocity: {velocity} m/s");