2017-12-22 34 views
0

JSONPath와 함께 JSON.NET SelectToken을 사용하여 예를 들어 유형이 ggg 인 긴 이름 (eee)을 선택하려고합니다.JSON.NET JSONPath SelectToken

JSON 조각 :

"results" : [ 
    { 
    "components" : [ 
     { 
      "longname" : "aaa", 
      "shortname" : "bbb", 
      "types" : [ "ccc", "ddd" ] 
     }, 
     { 
      "longname" : "eee", 
      "shortname" : "fff", 
      "types" : [ "ggg" ] 
     } 
    ] 
    }] 

은 내가 JSONPath 구문이 올바른지 얻을 수 없습니다입니다. 나는 적합한 솔루션에 가까운 생각 다음을 시도했지만 항상 null 반환 한 : 나는 기쁨과 Querying JSON with SelectToken# JSONPath - XPath for JSON을 참조한

o.SelectToken("results[0].components[?(@.types=='[ggg]')].longname") 

.

답변

1

좋아, 그래서 나는 JSONPath에 대해 조금 배우고 주위에 플레이 (using this)을했고, 나는 이것이 가장 좋은 방법인지 잘 모르겠지만, 그것은 확실히 작동합니다

results[0].components[?(@.types.length==1&&@.types[0]=="ggg")].longname 

불행하게도 내가 수없는 것 더 간단한 해결책을 제안하는 다른 정보를 찾으십시오.

+0

감사합니다. [here] (https://github.com/JamesNK/Newtonsoft.Json/issues/1318)에서 배열의'@ .length'는 지원되지 않습니다. –