5

次の構造のデータがあります。

一意の ID (int) | 名 (文字列) | 姓 (文字列) | 割合 (倍)

データのセットは次のようになります。

1 | ジョン | ジョン | ハンコック | 49.5
2 | ジョン | ジョン | ハンコック | 95.0
3 | ジェーン | ハンコック | 89.5
4 | ジェーン | ハンコック | 73.5
5 | ジェーン | ハンコック | 96.5
6 | フレッド | フレッド | フリントストーン | 45.8

私が必要としているのは、このデータをクライアント側に保存して、ブラウザーからアクセスできるようにし、jQuery を使用して操作できるようにすることです。

たとえば、ページに 3 つの値を持つドロップダウン (選択) があります。

1) 低パーセンタイル
2) 中パーセンタイル
3) 高パーセンタイル

ユーザーがドロップダウンで値の 1 つを選択すると、選択した値に該当する上記のデータから項目を選択できる必要があります。たとえば、低パーセンタイル値を選択した場合、パーセンテージが 60% 未満のすべての項目をデータから取得する必要があります。

私は jQuery をかなり使いこなしていますが、クライアント側で取得するためにこの種のものを保存するために jQuery を使用したことはありません。どうにかしてこのデータをクライアント側の JSON オブジェクトに保存し、それを自由に選択して操作できるようにすることはできますか?

4

4 に答える 4

2

だから基本的に:

var javascriptObject = $.parseJSON(jsonString);

var jsonString = JSON.stringify(javascriptObject);

JavaScript は他の OOP とよく似ています。

var foo = {}; //NEW Object
foo.bar = 1;
foo.bars = 2;
foo.bar.date = 3;
var jsonString = JSON.stringify(foo);
//jsonString is now a "JSON Object" that holds the data found in object foo.
console.log(jsonString); //To see what it looks like.

ただし、これがすべてクライアント側で使用する場合は、JavaScript オブジェクトに固執してください。それらを JSON に変換する必要はありません。JSON オブジェクトは文字列であるため、他のソースにデータを送信するためのものです。通常、AJAX リクエストで使用されます。

コメントに基づいて編集

$(document).ready(function(){
    var globalObject = {};
    globalObject.foo = 1;
    globalObject.bar = 2;

    $(el).change(function(){
        globalObject.foo = $(this).val();
    });
});
于 2013-03-12T15:46:39.777 に答える
2

JSON は Javascript Object Notation の略です。オブジェクトに精通している場合は、操作できるはずです。

あなたの例では、おそらく変数をオブジェクトの配列として保存します(最初に番号が付けられているため)。数値を 0 から始まる増分 (0、1、2...) に再割り当てしてもかまわないことを願っています。

クライアント側に保存したい場合は、代わりに次のようにすることもできます。

var data = [
{ fname : "John", lname : "Hancock", value : 49.5 },
{ fname : "John", lname : "Hancock", value : 95.0 }
];

例として最初の 2 つだけです。次に、 for ループを使用して配列を反復処理しfor(var i=0, count = data.length; i < count; i++)、データ if で何かを行うことができますdata[i].value < 60

jQuery には.each()という便利な関数があり、これも簡単に使用できます。また、JSON を .json ファイルに保存し、必要に応じてjQuery.getJSON()で呼び出すこともできます。どちらも、これについて学ぶための良い出発点になる可能性があります。

于 2013-03-12T15:51:16.640 に答える
1

私はこの答えを誇りに思っていませんが、おそらくあなたのニーズに合うでしょう。また、ブラウザにHTML5ローカルストレージが必要ありません。

<input type="hidden" id="json_data" />

<script type="text/javascript>
    var theData = [
        {
            id: 1,
            firstName: 'John',
            lastName: 'Hancock',
            pct: 49.5
        },
        // other objects
        {
            id: 6,
            firstName: 'Fred',
            lastName: 'Flintstone',
            pct: 45.8
        }
    ];
    var dataAsJsonString = JSON.stringify(theData);
    $('#json_data').val(dataAsJsonString); // store data in hidden field

    // later on...
    var getDataBackOut = $.parseJSON($('#json_data').val());
    // you can now iterate over the array to find what you need
</script>
于 2013-03-12T15:56:31.600 に答える
0
var foo = localStorage.getItem("bar");
// ...
localStorage.setItem("bar", foo);

HTML5 ローカル ストレージを使用する

于 2013-03-12T15:46:00.080 に答える