2012-02-23 5 views
1

私のJSON文字列のコレクト()メソッドを介してJSON文字列の特定のフィールドの配列を作成することです:次のようにどのようにobjx

var data = [{"first":"3","second":"1"},{"first":"5","second":"5"},{"first":"7","second":"1"}]; 

今私が呼び出しています -

objx(data).collect("first") 

をとに期待[3,5,7]のような配列を取得します。 しかし、私はjavascriptエラーを取得しています:オブジェクトはこのプロパティまたはメソッドをサポートしていません。 私はhttp://code.google.com/p/objx/からobjx-2.3.6.jsファイルが含まれている

objx(data).collect("first").obj() but with no avail. 

で試してみましたが、私はコードの行の一切を減らすためにobjx APIを使用して配列を作成しないようにしたいです。 私はIE8を使用しています

避難路を提案してください。

答えて

2

"my json string" - これはJSONでも文字列でもありません。とにかく...

あなたはjQueryを使ってあなたの質問をタグ付けしましたので、は(あなたはどこでもあなたの質問にそれを言及していないにもかかわらず)、ここで同じ問題にjQueryのソリューションです:限り

var fields = $.map(data, function(val) { return val.field; }); 
// fields is [3,5,7] 

.collect()メソッドがコアobjxライブラリの一部ではないため、少なくとも、それはobjx-2.3.6.jsではありません。おそらくコレクションプラグインjsも含める必要があります(しかし、私はそれを見つけることができませんでした)。

+0

おかげでたくさんのプラグインファイルを追加します。それは働いている。しかし、なぜそれが有効なjson文字列ではないか教えてください。 –

+0

私が言っていることは、間違った用語を使用しているということです。 JSONは、データ交換に使用されるオブジェクト(通常は)の_string_表現であるため、ここに示すコードではJSONはありません。あなたが持っているのは、オブジェクトリテラルを含む配列リテラルで作成している配列(オブジェクトの一種)です。 JavaScriptオブジェクトはJSONと同じではなく、似たような構文を使用します。返信いただきありがとうございます。 – nnnnnn

+0

しかし、私は1つの疑いがあります。私の例では、私の例では配列とオブジェクトリテラルを指摘してください。私の例のJSON文字列表現が何であったかを見せてください。 –

2

collectは、プラグイン

参照ドキュメントとしてobjxに追加する必要があります。https://code.google.com/p/objx/wiki/Plugins

コレクト機能のために

https://objx.googlecode.com/svn/trunk/plugins/src/collections/collect.js

var data = [{"first":"3","second":"1"},{"first":"5","second":"5"},{"first":"7","second":"1"}]; 


objx(data).collect("first", function(array){ 
    alert(array); 
}); 
+0

+1。ダウンロードするプラグインが見つかりませんでした。何らかの理由で、objxに関する他のページがうまく表示されていても、IE7でダウンロードページが正しく表示されませんでした。したがって、私のjQueryベースの答えです。 – nnnnnn

+0

に注目!私はこれを探しています。私の検索は終わっています。 –