Sha256: 39a04ff74a7dd4ee741642f42ee061e5e780599752012935748637069d7d67ba

Contents?: true

Size: 947 Bytes

Versions: 42

Compression:

Stored size: 947 Bytes

Contents

using System;
using System.Collections.Generic;
using System.Reflection;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace Generators.Input
{
    public class CanonicalDataCasesJsonConverter : JsonConverter
    {
        private const string TokensPath = "$..*[?(@.property)]";

        public override bool CanConvert(Type objectType) => typeof(IEnumerable<CanonicalData>).GetTypeInfo().IsAssignableFrom(objectType);

        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var casesToken = JToken.ReadFrom(reader);
            var caseTokens = new JArray(casesToken.SelectTokens(TokensPath));
            
            return new JArray(caseTokens).ToObject(objectType);            
        }

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) => throw new NotImplementedException();
    }
}

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
trackler-2.2.1.27 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.26 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.25 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.24 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.23 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.22 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.21 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.20 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.19 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.18 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.17 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.16 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.15 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.14 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.13 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.12 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.11 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.10 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.9 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
trackler-2.2.1.8 tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs