json.net 속성을 대문자로 역 직렬화

Morleyc

다음 POCO가 주어지면 :

public class AggV2
{
    [JsonProperty("T")]
    public string Ticker { get; set; }
    [JsonProperty("v")]
    public decimal Volume { get; set; }
    [JsonProperty("o")]
    public decimal Open { get; set; }
    [JsonProperty("c")]
    public decimal Close { get; set; }
    [JsonProperty("h")]
    public decimal High { get; set; }
    [JsonProperty("l")]
    public decimal Low { get; set; }
    [JsonProperty("t")]
    [JsonConverter(typeof(UnixMillisecondsConverter))]
    public DateTimeOffset Timestamp { get; set; }
}

타사 데이터 제공 업체가 동일한 시세, 즉 MsFT 및 MSFT에 대해 대소 문자를 혼합하여 보내는 것을 보았습니다. 이로 인해 MSSQL 키 제약 조건으로 인해 악몽이 발생하고 있습니다!

첫 번째 단계는 Ticker위의 예 에서 속성 값이 항상 MSFT가 되도록 일반적인 경우로 필터링하는 것입니다.

Ticker항상 대문자로 직렬화 되도록하려면 어떻게해야 합니까?

Morleyc

다음 변환기를 작성했습니다. 이것이 최상의 방법일까요? 아니면 바퀴를 다시 발명 했나요?

public class AggV2
{
    [JsonProperty("T")]
    [JsonConverter(typeof(UppercaseStringConverter))]
    public string Ticker { get; set; }
    [JsonProperty("v")]
    public decimal Volume { get; set; }
    [JsonProperty("o")]
    public decimal Open { get; set; }
    [JsonProperty("c")]
    public decimal Close { get; set; }
    [JsonProperty("h")]
    public decimal High { get; set; }
    [JsonProperty("l")]
    public decimal Low { get; set; }
    [JsonProperty("t")]
    [JsonConverter(typeof(UnixMillisecondsConverter))]
    public DateTimeOffset Timestamp { get; set; }
    [JsonProperty("n")]
    public int Samples { get; set; }
}

public class UppercaseStringConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(string);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value is string str)
            writer.WriteValue(str.ToUpper());
        else
            throw new JsonSerializationException("Expected date object value.");
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        bool nullable = Nullable.GetUnderlyingType(objectType) != null;

        if (reader.TokenType == JsonToken.Null)
        {
            if (!nullable)
            {
                throw new JsonSerializationException($"Cannot convert null value to {objectType}.");
            }
            return null;
        }

        if (reader.TokenType == JsonToken.String)
            return ((string)reader.Value).ToUpper();
        else
            throw new JsonSerializationException($"Unexpected token parsing date. Expected String, got {reader.TokenType}.");
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON을 .net 객체로 역 직렬화

분류에서Dev

json 문자열을 .NET 개체 목록으로 역 직렬화

분류에서Dev

json 문자열을 개체 C # .net으로 역 직렬화

분류에서Dev

JSON.Net 역 직렬화로 누락 된 속성 채우기

분류에서Dev

json.net으로 null 정규식 속성 역 직렬화

분류에서Dev

속성이 없을 수있는 Json.net 역 직렬화

분류에서Dev

json.net으로 JSON 역 직렬화

분류에서Dev

Json.NET이 System.Range 속성을 제대로 역 직렬화하지 못함

분류에서Dev

VB.NET에서 변수 속성 이름으로 JSON 역 직렬화

분류에서Dev

JSON.net을 사용하여 동적으로 역 직렬화

분류에서Dev

예측할 수없는 JSON 속성을 문자열로 역 직렬화

분류에서Dev

JSON 속성을 클래스로 역 직렬화

분류에서Dev

비표준 (및 다양한) 속성 이름 (.NET)으로 JSON을 역 직렬화하는 방법

분류에서Dev

Json .Net 역 직렬화

분류에서Dev

Json String .net 역 직렬화

분류에서Dev

자바 다형성 Json 역 직렬화

분류에서Dev

Json.NET 역 직렬화 및 속성 설정 기 부작용

분류에서Dev

JSON을 개체로 역 직렬화 할 때 발생하는 .NET Web API 문제

분류에서Dev

JSON을 C # 개체로 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

Jackson : 속기 속성 값으로 json을 역 직렬화하는 방법

분류에서Dev

Json.Net을 사용하여 숫자의 속성 이름으로 시작하는 json을 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

분류에서Dev

JSON 문자열을 객체로 역 직렬화하는 방법

분류에서Dev

Json.NET은 json 문자열을 역 직렬화 또는 직렬화하고 속성을 런타임에 정의 된 다른 속성 이름에 매핑합니다.

분류에서Dev

문자열을 메서드에 전달하고 json으로 변환 한 다음 .net에서 역 직렬화

분류에서Dev

JSON.NET 및 생성 된 클래스로 요소 역 직렬화

분류에서Dev

JSON.NET 및 생성 된 클래스로 요소 역 직렬화

Related 관련 기사

  1. 1

    JSON을 .net 객체로 역 직렬화

  2. 2

    json 문자열을 .NET 개체 목록으로 역 직렬화

  3. 3

    json 문자열을 개체 C # .net으로 역 직렬화

  4. 4

    JSON.Net 역 직렬화로 누락 된 속성 채우기

  5. 5

    json.net으로 null 정규식 속성 역 직렬화

  6. 6

    속성이 없을 수있는 Json.net 역 직렬화

  7. 7

    json.net으로 JSON 역 직렬화

  8. 8

    Json.NET이 System.Range 속성을 제대로 역 직렬화하지 못함

  9. 9

    VB.NET에서 변수 속성 이름으로 JSON 역 직렬화

  10. 10

    JSON.net을 사용하여 동적으로 역 직렬화

  11. 11

    예측할 수없는 JSON 속성을 문자열로 역 직렬화

  12. 12

    JSON 속성을 클래스로 역 직렬화

  13. 13

    비표준 (및 다양한) 속성 이름 (.NET)으로 JSON을 역 직렬화하는 방법

  14. 14

    Json .Net 역 직렬화

  15. 15

    Json String .net 역 직렬화

  16. 16

    자바 다형성 Json 역 직렬화

  17. 17

    Json.NET 역 직렬화 및 속성 설정 기 부작용

  18. 18

    JSON을 개체로 역 직렬화 할 때 발생하는 .NET Web API 문제

  19. 19

    JSON을 C # 개체로 역 직렬화

  20. 20

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  21. 21

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  22. 22

    Jackson : 속기 속성 값으로 json을 역 직렬화하는 방법

  23. 23

    Json.Net을 사용하여 숫자의 속성 이름으로 시작하는 json을 역 직렬화하는 방법은 무엇입니까?

  24. 24

    JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

  25. 25

    JSON 문자열을 객체로 역 직렬화하는 방법

  26. 26

    Json.NET은 json 문자열을 역 직렬화 또는 직렬화하고 속성을 런타임에 정의 된 다른 속성 이름에 매핑합니다.

  27. 27

    문자열을 메서드에 전달하고 json으로 변환 한 다음 .net에서 역 직렬화

  28. 28

    JSON.NET 및 생성 된 클래스로 요소 역 직렬화

  29. 29

    JSON.NET 및 생성 된 클래스로 요소 역 직렬화

뜨겁다태그

보관