@ErrorInever

C#. Json. Как достать элементы массивов из массива?

Json file
{
	"ts":123456,
	"pts":123,
	"updates":[[First,36,49,4217492,1477223538," ... ","Text",{}],[80,1,0],[7,4217492,35]]
}


я получаю строку вида:
string json = "{\"ts\":1645337136,\"pts\":105,\"updates\":[[First,34,49,4217492,1477173537,\" ... \",\"Text\",{\"emoji\":\"1\"}],[80,1,0],[7,4217492,33]]}\r\n";


Необходимо вытащить первый "First" и последний "Text" элемент из массива, который находиться в массиве "updates"

Использовал библиотеку Json.net, удалось вытащить только значения ts и pts.
using System;
using Newtonsoft.Json;

class Events                                
    {
        public string ts { get; set; }
        public string pts { get; set; }
    }
static void Main(string[] args)
   {
string json = ""{\"ts\":123456,\"pts\":123,\"updates\":[[First,34,49,4217492,1477173537,\" ... \",\"Text\",{\"emoji\":\"1\"}],[80,1,0],[7,4217492,33]]}\r\n";
Events events = JsonConvert.DeserializeObject<Events>(json);
   }


Не могу разобраться как описать саму структуру json в классе и как с ней работать.
Прошу помощи.
  • Вопрос задан
  • 1432 просмотра
Решения вопроса 1
yamaoto
@yamaoto
la programmeur
class Events                                
    {
        public string ts { get; set; }
        public string pts { get; set; }
        public object[][] updates {get;set;}
    }
...
Events events = JsonConvert.DeserializeObject<Events>(json);
var first = events.updates.FirstOrDefault(f=>f!=null&&f[0]=="First");//получение первого массива содержащего слово "First"
var text = events.updates.FirstOrDefault(f=>!(f!=null&&f.Any(a=>a=="Text")))//получение массива в котором есть "Text"
if(text==null)
    throw new ArgumentException(...);
var textIndex = text.TakeWhile(w=>!(w=="Text")).Count();//получение индекса в массиве для слова "Text"
 ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы