Tôi cần phải chọn một số giá trị từ phản hồi json. Im sử dụng json.net, tốt với những thứ đơn giản hơn, nhưng dường như không có nhiều tài liệu/hướng dẫn về bất cứ điều gì trong quá khứ đó. Trong ví dụ json dưới đây tôi cần phải chọn tất cả các lứa tuổi:JSON.NET Chọn các mục trong mảng với linq
{
"teacherHolder": [{
"id": 200000001,
"name": "Mr Test",
"class": "a4",
"students": [{
"id": "100532469",
"name": "ben"
},
{
"id": "100506025",
"name": "bill"
},
{
"id": "100000447",
"name": "bob"
}]
}]
}
Tôi đã cố gắng này và các biến thể khác:
var stuff = response["teacherHolder"].Children()["students"];
var names = from y in stuff.Children().Values()
select y["name"];
và điều này:
var names= response["teacherHolder"]
.Select(s => (string)s.SelectToken("students[0].name")).ToList();
phản hồi là một JObject từ một yêu cầu web. Tôi chỉ nhận lại điều này:
[{"Key":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]","Value":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]"}]
Kết quả cuối cùng được đưa vào từ điển.
Bất kỳ ý tưởng nào về cách thực hiện việc này? tôi biết nó sẽ được đơn giản, tôi chỉ havent tìm thấy sự kết hợp đúng.
Hi svick im bằng cách sử dụng phương pháp đầu tiên - nhưng tôi đang được nhận lại là: {Newtonsoft.Json.Linq.JEnumerable} trong biến tên? –
gdp
Vâng, đó là lý do tại sao tôi nói bạn cần phải thêm 'Giá trị()' nếu bạn muốn có một tập hợp 'chuỗi'. –
svick
Hi svick tôi đã thêm các giá trị() vào cuối. của nó bây giờ: var names = students.Children() ["name"]. Giá trị (); –
gdp