JsonTextReaderを使用して一度にトークン(.Load)を読み込むときとReadFromを使用してJSON全体を読み込むときとで、JsonPathの問題が異なる。ここでは一例です: JSON:パス= "[*]人物。" メソッド= SelectTokens(パス)JsonPath with JsonTextReader:トークンを一度に
[
{
"person": {
"personid": 123456
}
},
{
"person": {
"personid": 798
}
}
]
.ReadFromを使用している場合、それは適切な2つの要素を返します。私が.Loadを使うと、0要素が返されます。しかし、パスを "人"に変更すると、.ReadFromは0要素を返し、.Loadは2要素を返します。
解決方法として、最初の "。"まで削除されるようにパスを変更することができました。すなわちpath = substring(path.index( "。")+ 1);しかし、これは適切な修正よりも多くのハックを感じます。私は、もちろん、JSONが配列であることを保証する必要もありますが、ほとんどの場合はそうです。
最後に、トークンを一度に読み込むときにJSON Pathを配列で使用する方法を学びたいと考えています。どんな勧告?あなたがリンクされているコードで何が起こっている
間違いありません。あなたの場合は、私が行ったようにパスを変更しました。私はjsonパスを上流(読者の近く)で利用できるようになるため、パスを変更する必要はありません。また、パスを修正することによって、彼らが私に[1] .personを与えた場合、私は[1]自分自身を処理する必要があります。何か案は?助けてくれてありがとう。 –
最新の編集をチェックする – Stuart