2016-08-07 2 views
0

타사 API에서 동적 개체를 가져 오려고합니다 & 최소한의 코드로 C# 개체로 변환하십시오. Dapper가 SQL 문과 함께 수행하는 것과 비슷한 결과로 C# 개체가 생성됩니다. 이것을 할 수있는 도서관이 있습니까? 아래처럼 수동으로 처리 할 수 ​​있지만이 API에서 검색 할 때마다 작성하는 코드가 많습니다.동적 개체를 C# 개체로 변환

public IEnumerable<Requirement> Get() 
    { 
     dynamic requirementsSelect; 
     requirementsSelect = _RequirementsRepository.GetRequirements(); 
     IList<Requirement> Requirements = new List<Requirement>(); 
     foreach (var req in requirementsSelect) 
     { 
      Requirement requirement = new Requirement(); 
      requirement.Text = req.Text; 
      requirement.Number = req.Number; 
      Requirements.Add(requirement); 
      foreach (var node in req.Phrases) 
      { 
       Requirement reqNode = new Requirement(); 
       reqNode.Text = node.Text; 
       reqNode.Number = node.Number; 
       requirement.Nodes.Add(reqNode); 
     } 
     return Requirements; 
    } 

감사

+0

JSON을 사용해 보셨습니까? –

+0

@MokhtarAshour Newtonsoft.Json을 생각하고 있었지만 json이 아닌 C# 개체가되고 싶습니다. 감사합니다 – shw

+1

@gypsyCoder 확실하지만 제 3 자 API에서 JSON을 보내고 코드에있는 C# 객체로 deserialize하기로했습니다. –

답변

1

나는 다음과 같이 JSON과 같은 타사을 반환 끝났다. 내 구체적인 경우 JSON 속성을 표시하지 않았습니다. 동적 객체를 IEnumerable로 변경하여 해결했으며, .Select를 사용하여 검색 할 속성을 지정할 수있었습니다.

IEnumerable<dynamic> requirements = _RequirementsRepository.GetRequirements(); 
     return JsonConvert.SerializeObject(new 
     { 
      Requirement = requirements.Select(x => x.Text), 
      Number = requirements.Select(x => x.Number), 
     }); 

고마워요!

관련 문제