Tôi có JSON sau:đối tượng JSON Deserialize động có tên trong C# (sử dụng JSON.Net hay cách khác)
{
"aaaa": {
"name": "General Name",
"product": "book",
"host": "book.example.com",
"chapters": {
"bbbb": {
"name": "Chapter 1",
"page": "1",
"end_page": "25"
}
},
"categories" : {
"analysis":{
"Abbbb" : {
"name": "B Chapter",
"id" : "9001"
},
"Acccc" : {
"name": "C Chapter",
"id" : "9001"
},
"Adddd" : {
"name": "D Chapter",
"id" : "9001"
},
"Aeeee" : {
"name": "E Chapter",
"id" : "9001"
},
"Affff" : {
"name": "F Chapter",
"id" : "9001"
},
"Agggg" : {
"name": "G Chapter",
"id" : "9001"
}
},
"sources":{
"acks" : {
"name": "S. Spielberg",
"id" : "9001"
}
}
}
}
"yyyy": {
"name": "Y General Name",
"product": "Y book",
"host": "ybook.example.com",
...
}
"zzzz": {
"name": "Z General Name",
"product": "Z book",
"host": "zbook.example.com",
...
}
Các giá trị cho aaaa
, yyyy
và zzzz
thể được bất kỳ chuỗi và có thể được bất kỳ số của họ.
Tôi cần trích xuất tất cả các giá trị [aaaa|yyyy|zzz].categories.analysis
. Tức là, tôi cần phải kết thúc bằng một tên là Dictionary<string, string>
của đối tượng tên (ví dụ: Abbbb
, Acccc
, v.v.) và ID, bỏ qua chuỗi name
.
Ví dụ, [Abbbb, 9001] [Acccc, 9001] [Adddd, 9001] ... [Zaaaa, 9001]
Tôi đã ở này cho cách quá dài và cảm nhận như tôi thiếu một cái gì đó hiển nhiên. Tôi đã thử JSON.net và serialization bản địa. Đây là một nhiệm vụ tầm thường trong mọi ngôn ngữ khác mà tôi đã sử dụng.
tôi đã đến gần với một cái gì đó như thế này:
var ajsonObject = JsonConvert.DeserializeObject<dynamic>(jsonString);
var oasearch_categories = ajsonObject.aaaa.categories.analysis;
Nhưng một lần nữa, aaaa
thể được bất kỳ chuỗi, vì vậy tôi không chắc chắn làm thế nào để tham khảo mà tự động.