Json.NET 및 System.Linq.Dynamic을 사용하여 복잡한 json 개체를 사용자 정의 필터/조건부와 일치 시키려고합니다. .System.Linq.Dynamic을 사용하여 JSON 개체가 조건부와 일치하는지 확인하는 방법
: 이것은 나에게없음 속성 또는 필드 '이름'형태로 존재하지 않는다 '객체'
Where
-statement있는 라인에 오류가 있습니다
var json = @"{""Name"":""Jane Doe"",""Occupation"":""FBI Consultant""}";
dynamic person = JObject.Parse(json);
var people = new[] { person };
var isMatch = people.Where("[email protected]", "Jane Doe").Any();
Console.WriteLine(isMatch);
: 여기 내 코드입니다
대신 익명 개체를 사용하면 두 번째 줄을 다음과 같이 바꿔야합니다.
json 개체가 일치하는지 확인하기 위해 문자열 조건자를 통해 쿼리 할 수있는 json 문자열을 deserialize 할 다른 방법이 있습니까?
EDIT : json-string 및 Where- 문은 동적이며 사용자가 제공합니다. 많은 속성이 있으며 코드를 실행하기 전에 이름을 알지 못합니다. 필드의 이름과 값은 모두 사용자가 제공합니다. 로 간단하게 할 수
var isMatch = people.Where(x => x.Name == "Jane Doe").Any();
:
var isMatch = people.Any(x => x.Name == "Jane Doe");
이 당신이 원하는되지 않을 수도 있습니다,하지만 간단한을 System.Linq은 쉽게 당신의 요구를 충족 할 수
도움이 될 수 있습니다. http://stackoverflow.com/questions/18734996/how-to-use-linq-with-dynamic-collections –
['SelectToken'] (http://www.newtonsoft.com/ json/help/html/QueryJsonSelectTokenJsonPath.htm) 와일드 카드'*'연산자를 사용하면 사용자의 요구를 충족시킬 수 있습니다. [JObject 계층에서 이름으로 특정 JToken 검색하기] (https://stackoverflow.com/a/29782523/3744182)를 참조하십시오. – dbc