Как получить доступ к последнему элементу массива JSON с помощью метода Newtonsoft.Json SelectTokenC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить доступ к последнему элементу массива JSON с помощью метода Newtonsoft.Json SelectToken

Сообщение Anonymous »

Есть ли способ получить последний элемент массива JSON, используя только запрос JSON (в данном случае метод Newtonsoft.Json SelectToken)?
Я не могу используйте метод Last из Newtonsoft.Json, так как я получаю запрос из текстового поля внешнего интерфейса, и единственным, кто знает о структуре документа JSON, является сам пользователь. Они могут захотеть получить последний элемент массива в некоторых своих запросах JSON.
Если единственный выбор — использовать этот метод Last, мне нужно будет добавить переопределение из SelectToken, который принимает запросы с отрицательным индексом и разделяет обычные и минусовые запросы, а затем запускает эти разделенные разделы в методах Last или SelectToken, что для меня не является хорошим решением.
Я попробовал несколько синтаксисов с SelectToken, но получил исключения (вставленные в комментарии):
var jsonArray = @"[{""Name"":""amir0"",""Id"":0},{""Name"":""amir1"",""Id"":1}]";
var array = JArray.Parse(jsonArray);

Console.WriteLine(array.SelectToken("[-1].Name")); //Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range.
Console.WriteLine(array.SelectToken("[^1].Name")); //Unhandled exception. Newtonsoft.Json.JsonException: Unexpected character while parsing path indexer: ^


Подробнее здесь: https://stackoverflow.com/questions/790 ... selecttoke
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»