0
이 JSON에서 구성 요소의 상태를 찾으려고합니다. C#에서 JSON과 동일한 노드의 다른 키를 사용하여 키 값 찾기
{
"data": {
"id": 0,
"name": "name1",
"childFolders": [
{
"id": 60,
"name": "name2",
"childFolders": [
{
"id": 72,
"name": "Simulator",
"childFolders": [
{
"id": 235,
"name": "generic data pumper",
"childFolders": [],
"childComponents": [
{
"id": 14,
"name": "TCP Client",
"state": "ERROR",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 46256
},
{
"id": 99,
"name": "A4_Timer",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 102,
"name": "A2_Timer",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 108,
"name": "A8_Timer",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 113,
"name": "Timer MRO",
"state": "RUNNING",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 119,
"name": "A1_Timer",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 121,
"name": "A3_Timer",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 124,
"name": "TImer URO",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 236,
"name": "Demographics Reporter Generic",
"state": "RUNNING",
"type": "ROUTE"
},
{
"id": 299,
"name": "TImer for UIS",
"state": "STOPPED",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
}
]
}
],
"childComponents": []
},
{
"id": 920,
"name": "Get_JavaScript_Counter_Value",
"childFolders": [],
"childComponents": [
{
"id": 916,
"name": "HTTP Server",
"state": "RUNNING",
"type": "COMMUNICATION_POINT",
"inboundQueueSize": 0,
"outboundQueueSize": 0
},
{
"id": 917,
"name": "Get_JavaScript_Counter_Value",
"state": "RUNNING",
"type": "ROUTE"
}
]
}
],
"childComponents": []
}
],
"childComponents": []
},
"error": null
}
나는
json2sharp.com에서 JSON 클래스를 생성.
public class ChildFolder2
{
public int id { get; set; }
public string name { get; set; }
public List<object> childFolders { get; set; }
public List<object> childComponents { get; set; }
}
public class ChildFolder
{
public int id { get; set; }
public string name { get; set; }
public List<ChildFolder2> childFolders { get; set; }
public List<object> childComponents { get; set; }
}
public class Data
{
public int id { get; set; }
public string name { get; set; }
public List<ChildFolder> childFolders { get; set; }
public List<object> childComponents { get; set; }
}
public class RootObject
{
public Data data { get; set; }
public object error { get; set; }
}
JSON은 문자열로 저장됩니다. 나는 JSON.NET을 사용하고있다. 그러나 JSON.NET을 사용하지 않는 모든 솔루션도 유용 할 것입니다. 그럼 구성 요소 이름이 인 경우 해당 구성 요소의 상태을 찾아야합니다. 구성 요소 유형은 "COMMUNICATION_POINT"입니다. 미리 감사드립니다. 모든 클래스의
'Data' 클래스와 Folder 클래스는 따로 따로 필요하지 않습니다. 루트에서'Folder'를 사용할 수 있습니다 :'public Folder data {get; 세트; }' –
@ Ilya.Sulimanov 솔루션을 가져 주셔서 감사합니다. 나는 그것이 매개 변수로 폴더를 소요 이후 ExtractComponentsFromFolders()에 대한 매개 변수가없는 것 같아요. 특정 폴더를 매개 변수로 어떻게 제공해야합니까 ?? –