JSON 직렬화를 꽤 많이 사용했지만 동일한 속성을 가진 유사한 개체를 여러 개 포함 할 수있는 개체가있는 시나리오 (이전에 본 적이없는)를 발견했습니다. 예를 들면
{
"Objects": {
"ObjectA": {
"prop1": 6601,
"prop2": "Prop",
"propParams": [
{
"Type": 0,
"Name": "name"
}
]
},
"ObjectB ": {
"prop1": 6601,
"prop2": "Prop",
"propParams": []
}
}
}
불행히도 그것은 객체의 목록 / 배열이 아닙니다. 내 문제 중 하나입니다.
그래서 나는
그것들을 다루는 방법에 대한 도움, 제안, 안내 등을 사용할 수있는 몇 가지를 가지고 있습니다.
Objects
먼저 물건부터 시작해야한다고 생각합니다 . 보시다시피, 그들은 다른 유형이지만 동일한 속성을 포함하며이 Objects
클래스의 모든 객체에 대해 적용 됩니다. 개체를 가져 와서 Standard
적절한 속성을 포함하는 한 개체로 "변환"하는 방법이 있습니까? JsonConvert로 뭔가 생각하고 있습니다. "표준"개체의 문자열 속성으로 개체 유형을 사용할 수 있습니다.
2nd Objects
객체 유형에 관계없이 객체를 배열 / 목록 으로 만드는 방법이 있습니까? 이 작업을 먼저 수행해야 할 수도 있음을 이해하지만 내가 한 순서대로 요청하는 것이 합리적입니다.
나는 현재 다른 도움을 위해 웹을 샅샅이 뒤지고 있지만 여기서 물어볼 것이라고 생각했습니다.
Objects
A와 처리한다 Dictionary<string, Standard>
.
예를 들어 다음 LINQPad 쿼리는 다음과 같습니다.
void Main()
{
JsonConvert.DeserializeObject<Payload>(@"{
""Objects"": {
""ObjectA"": {
""prop1"": 6601,
""prop2"": ""Prop"",
""propParams"": [
{
""Type"": 0,
""Name"": ""name""
}
]
},
""ObjectB "": {
""prop1"": 6601,
""prop2"": ""Prop"",
""propParams"": []
}
}
}").Dump();
}
public class Payload
{
public Dictionary<string, Standard> Objects{get;set;}
}
public class Standard
{
public int Prop1{get;set;}
public string Prop2{get;set;}
public List<Dictionary<string, object>> PropParams{get;set;}
}
이 결과가 나타납니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다