Проблема, с которой вы столкнулись, связана с разделом «текст» - в вашем JSON это не одиночное значение, а массив строковых значений. В результате вам нужно подумать, как на самом деле вы хотите с этим справиться.
Вот конкретная строка, которая вызывает проблему:
var desc = (string)item.SelectToken("text");
Чтобы на самом деле получить эти строки значения, вы можете импортировать их как строковый массив, например так:
string[] descriptions = item.SelectToken("text").ToObject<string[]>();
(я не проверяю нулевые значения в строке выше, для «текста», вы должны вероятно, сделайте это).
Когда у вас есть этот массив, вам нужно решить, что с ним делать. Например, вы можете захотеть объединить их все, разделив их символом «;», например, «test 1» и «test 2» будут выглядеть как «test 1; test 2» в качестве окончательного описания. Примерно так это будет выглядеть так:
string[] descriptions = item.SelectToken("text").ToObject<string[]>();
var desc = string.Join("; ", descriptions);
, который даст вам объединенное «описание» в переменную «des c», и вы сможете делать с ней все, что захотите.
надеюсь, что поможет