2017-12-22 10 views
0

JSONPathでJSON.NET SelectTokenを使用して、たとえば、タイプがgggのlongname(eee)の値を選択しようとしています。JSON.NETのSelectTokenをJSONPathで使用する

JSONスニペット:

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

私はJSONPathの構文が正しい取得することができません。

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

ノー喜びでQuerying JSON with SelectToken# JSONPath - XPath for JSONを参照している:私は、私は右の解に近いですが、常にnullを返すと思わ以下を試してみました。

答えて

1

[OK]をので、私はJSONPathについて少し学び、遊ん(using this)を持っていた、と私はこれが最善の解決策ですが、それは間違いなく動作するかどうかを確認していない:

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

残念ながら、私は見えることはできませんもっと簡単な解決策があることを示唆するその他の情報を見つけることができます。

+0

ありがとう - [here](https://github.com/JamesNK/Newtonsoft.Json/issues/1318)から、配列の '@ .length'はサポートされていません。 –

関連する問題