38

次の JSON があり、JSONPathnameを使用してプレーンな値を取得する必要があります。

{
  "single" : {
    "id" : 1, 
    "name" : "Item name"
  }
}

私が使用した式は次のとおりです$.single.nameが、常に配列を取得します。

[ "Item name" ]

文字列値 ( "Item name") の代わりに。

4

4 に答える 4

34

しかし、私は常に配列を取得します:

それは起こることを意図しています。このドキュメントで読むことができるように、「結果」の下 (ほぼ下部):

jsonPath の戻り値は配列であり、これも有効な JSON 構造であることに注意してください。そのため、結果の構造に jsonPath を再度適用するか、お気に入りの配列メソッドの 1 つを並べ替えとして使用することをお勧めします。

したがって、基本的には常に配列を返します。この場合は String など、他のタイプのデータが必要な場合は、自分で変換する必要があります。

于 2014-05-13T06:30:25.633 に答える
10

私はJSONPathのJava 実装を使用していましたが、まったく同じ問題に遭遇しました。私にとってうまくいったのは、「[0]」をjsonパス文字列に追加することでした。だからあなたの場合:

$.single.name[0]

于 2015-01-30T12:20:57.163 に答える