2

http://www.sitepen.com/blog/2008/03/17/jsonpath-support/の使用について言及しています

これは私がやっていることです(2日間過ごしましたが運がありませんでした):最初に整数列と日付列でデータグリッドを描画し、列ヘッダーをクリックして列の値をソートすることもできます..

dojox.jsonPath.query を使用して、次のような構文を使用して数値を照会するようになりました

  jsonStore = new dojox.jsonPath.query(object,"[?(@.+ field1 > 500)]");//works fine

(jsonStoreを使用してグリッドを再描画します)..今まではすべてうまくいきました。

しかし、現在、jsonPath を使用して Dojo データグリッドの他の列の日付を除外しようとしています。

var dt = new Date();
jsonStore = new dojox.jsonPath.query(object,"[?(@.effectiveDate<" + dt + ")]");// does not work
// I am trying to get the rows of the grid which have effectiveDate date less 
// than cuurent date or any other passed 'javascript date object'

layout = [{"field":"field1","name":"field1"},{"type":dojox.grid.cells.DateTextBox,"field":"effectiveDate","name":"effectiveDate","formatter":formatDate}];

ここで effectiveDate は、Dojo データグリッドのレイアウトのフィールドです。しかし、上記は機能せず、次のエラーがスローされます "jsonPath: missing ; before statement: _v.effectiveDate

jsonPath を使用して日付を照会するにはどうすればよいですか、または構文が間違っていますか?

<、<=、>=、= 演算子を使用して、dojox.jsonPath.query または dojox.json.query を使用して、json オブジェクト内の日付オブジェクトをクエリする方法はありますか?

助けはありますか?

4

1 に答える 1

1

JSONでは日付に問題があります。JSONにはネイティブの日付型がサポートされていないため、日付は数値または文字列表現を使用して表す必要があります。比較しているJSONでDateオブジェクトをどのように表現していますか?データとクエリで一貫した表現を使用し、比較可能な方法を選択した場合、これは機能するはずです。「ISO」タイムスタンプは、いくつかの理由で最適であり(dojo.date.stampを参照)、JSONで最も頻繁に使用されます。Date.toString(上記の「+」と連結して暗黙的に使用しているもの)は避けてください。並べ替えることができず、ブラウザー間で一貫性がありません。

于 2009-12-07T15:54:18.013 に答える