Другие ответы показаны с использованием SelectToken
, что хорошо - если вы не хотите этого делать, вы все равно можете сделать это, обращаясь к одному свойству за раз:
using System;
using System.IO;
using Newtonsoft.Json.Linq;
class Test
{
static void Main()
{
string json = File.ReadAllText("test.json");
JObject obj = JObject.Parse(json);
string testCase = (string) obj["value"][0]["testCase"]["name"];
Console.WriteLine(testCase);
}
}
В В вашем Try1 вы используете values
вместо value
и останавливаетесь на массиве - вы не запрашиваете свойство testCase
или свойство name
в этом.
В вашем Try2 вы делаете с точностью до наоборот - вы ищете testCase.name
, не выбирая сначала элемент в массиве value
.
В качестве третьего способа вы можете использовать Dynami c. набрав:
using System;
using System.IO;
using Newtonsoft.Json.Linq;
class Test
{
static void Main()
{
string json = File.ReadAllText("test.json");
dynamic obj = JObject.Parse(json);
string testCase = obj.value[0].testCase.name;
Console.WriteLine(testCase);
}
}