Here's the thing about JSON. There are really only a few types: boolean, numbers and strings. Everything else falls into these categories. For example an integer and a floating point value are both numbers. Strings cover everything else including fixed size numbers (like SSN), date and times, etc. So you really need to look at the OpenAPI spec for the API you're calling. In general for things that are flexible like numbers and strings they will provide additional context such as the precision, min/max length and required format (for strings). Without this information just looking at the data is going to be the wrong approach. For example you may see "value": 10
when the value happens to be a whole number but "value": 10.1
when it is fractional. The OpenAPI spec will generally clarify this otherwise you need to look at the documentation for the API.
Since you're using OData here then look at the documentation for the API you're calling and they should provide the information about the available fields and their expected types. That is what you need to code against.
For general guidelines, integrals are ints, floating points are doubles, booleans are booleans and everything else is a string. Given your very specific example I would expect the times to be timespan strings but it looks like they are either really fast or actually fractional parts of a time, such as minutes of a day or something. The docs should clarify this.