словарь JSON text to c#

Как я могу прочитать такие выходные данные в C# возможно преобразование в C# native списки?
Без разбора текста и разбиения и выполнения строковых манипуляций, должен быть простой способ

[
    "/recordings/series/seasons/432250",
    "/recordings/series/seasons/263560"
]

Меня интересуют только цифры, я знаю, что я мог бы легко просто использовать строку, разделенную с помощью ‘, и получить последние 6 цифр chars

еще пример:

[
    "/recordings/series/episodes/428389",
    "/recordings/series/episodes/428386",
    "/recordings/movies/airings/434062",
    "/recordings/series/episodes/430801"
]

В таком случае будет интересно узнать < > пути
типичный json, который я использую для десериализации, не работает с этими строками словаря likes json

спасибо

3 ответа

  1. Попробуйте код ниже.

            var json = @"[
    ""\/recordings\/series\/episodes\/428389"",
    ""\/recordings\/series\/episodes\/428386"",
    ""\/recordings\/movies\/airings\/434062"",
    ""\/recordings\/series\/episodes\/430801""
    ]";
    
            var jarray = JArray.Parse(json);
            var list = from a in jarray
                let val = a.Value<string>()
                let rgroup = Regex.Match(val, @"[^0-9]*([0-9]+)")
                let vstring = rgroup.Groups[1]
                select int.Parse(vstring.Value);
    

    Для этого требуется Newtonsoft.JSON библиотека, и listимеет тип IEnumerable<int>. А также не забудьте добавить

    using System;
    using System.Linq;
    using System.Text.RegularExpressions;
    using Newtonsoft.Json.Linq;
    

    К вершине вашей .cs файл.

  2. Много людей любят использовать Json.NET / Newtonsoft.Библиотека Json. Вы можете легко добавить его в качестве пакета NuGet в свой проект, а затем использовать его следующим образом:

    var json = "[\"/recordings/series/seasons/432250\",\"/recordings/series/seasons/263560\"]";
    
    var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(json);
    

    Для чисел есть много способов сделать это. Вот один из многих:

    var numbersList = list.Select(x => x.Split('/').Last()).ToList();
    
  3. Простой способ-использовать JavaScriptSerializerfrom System.Web.Extensions.dll. Его Deserialize<T>()метод позволяет указать тип, в который должен десериализоваться JSON. В случае простых примитивов, таких как массив строк, он работает магически без какой-либо суеты. Образец:

    var json = "[\"\/recordings\/series\/seasons\/432250\",\"\/recordings\/series\/seasons\/263560\"]";
    var stringArray = new JavaScriptSerializer().Deserialize<string[]>(json);
    foreach (var element in stringArray)
        Console.WriteLine(element.Split('/').Last());