JsonConvert целое число, чтобы плавать - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть json, который я использую jsonconvert для вывода float. У исходного json есть целые числа, которые я пытаюсь перевести в доллары и центы (конвертировать 375 в 3,75).

JSON:

[{"returnValue":
[{"facility":"DRIO","recrd_desc":"DEFAULT","update_time":{"$date":1509128545000},"control_num":1,"starttime":{"$date":1506830400000},"endtime":{"$date":4102462799000},"can_exchange_rate":2000},
{"facility":"DRIO","recrd_desc":"TEMP","update_time":{"$date":1521229607000},"control_num":37,"starttime":{"$date":1513040240000},"endtime":{"$date":1544576240000},"can_exchange_rate":2112},
{"facility":"DRIO","recrd_desc":"TEMP 3","update_time":{"$date":1521229399000},"control_num":38,"starttime":{"$date":1544576580000},"endtime":{"$date":1576112580000},"can_exchange_rate":2000}],
"ok":1.0}]

Модель:

namespace CSCApi.Models
{
    public class FareChartTypeResponse
    {
        public List<FareChartType> ReturnValue { get; set; }
        public decimal ok { get; set; }
    }

    public class FareChartType
    {
        public string facility { get; set; }
        public string recrd_desc { get; set; }
        public Update_Time update_time { get; set; }
        public int control_num { get; set; }
        public Starttime starttime { get; set; }
        public Endtime endtime { get; set; }
        [JsonConverter(typeof(CentsToDollarsConverter))]
        public float can_exchange_rate { get; set; }
    }

 public class CentsToDollarsConverter : JsonConverter
    {
        public override bool CanConvert(Type objectType)
        {
            return typeof(System.Int32).Equals(objectType);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {            
            var input = (int)reader.Value;
            float retValue = (input / 100.00F);            
            return retValue;
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {            
            writer.WriteValue(((float)value)*100);
        }
    }
}

Я получаю ошибку Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип.

Я не могу понять, где ошибка. Любая помощь приветствуется. Спасибо NH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...