首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在JSON对象中存储数据

如何在JSON对象中存储数据
EN

Stack Overflow用户
提问于 2013-03-12 15:40:40
回答 4查看 40.3K关注 0票数 5

我有以下结构的数据:

唯一ID (int) \n第一个名称(字符串)\##*##.

一组数据可能如下所示:

1-约翰·汉考克

2-约翰-汉考克- 95.0

简汉考克89.5

简·汉考克73.5

简·汉考克- 96.5

弗莱德·弗林特斯通45.8

我需要的是将这些数据存储在客户端,这样浏览器就可以访问这些数据,并且可以使用jQuery进行操作。

例如,我在页面上有一个下拉列表(select),其中包含三个值:

1)低百分位数

2)中间百分位数

3)高百分位数

当用户选择下拉列表中的一个值时,我需要能够从上面的数据中选择符合所选值的项。例如,如果他们选择低百分位数值,那么我需要从百分比小于60%的数据中检索所有项目。

我在jQuery方面相当多才多艺,但我从来没有用它来存储任何这样的东西,以供客户端检索。我是否可以以某种方式将这些数据存储在客户机端的JSON对象中,而这些对象又可以随意选择和操作?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-12 15:46:39

所以基本上:

代码语言:javascript
运行
复制
var javascriptObject = $.parseJSON(jsonString);

var jsonString = JSON.stringify(javascriptObject);

JavaScript和其他OOP非常相似。

代码语言:javascript
运行
复制
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请求。

基于注释编辑

代码语言:javascript
运行
复制
$(document).ready(function(){
    var globalObject = {};
    globalObject.foo = 1;
    globalObject.bar = 2;

    $(el).change(function(){
        globalObject.foo = $(this).val();
    });
});
票数 2
EN

Stack Overflow用户

发布于 2013-03-12 15:51:16

JSON代表Javascript对象表示法。如果您熟悉对象,您应该能够使用它。

对于您的示例,我可能会将变量保存为一个对象数组(因为它是先编号的)。希望您不会介意将数字重新分配到基于零的增量(0、1、2.)。

也许你可以这样做,如果你想把它保存在客户端:

代码语言:javascript
运行
复制
var data = [
{ fname : "John", lname : "Hancock", value : 49.5 },
{ fname : "John", lname : "Hancock", value : 95.0 }
];

这只是前两个例子。然后,您可以使用for循环for(var i=0, count = data.length; i < count; i++)在数组中进行迭代,并对数据执行一些操作(如果是data[i].value < 60 )。

jQuery有一个很好的函数,名为.each(),您也可以很容易地使用它。另外,如果需要的话,可以将JSON保存在.json文件中并由jQuery.getJSON()调用。这两者都可能是了解这一点的良好开端。

票数 2
EN

Stack Overflow用户

发布于 2013-03-12 15:56:31

虽然我对这个答案并不感到骄傲,但它可能会满足你的需要。它还不要求浏览器具有HTML5本地存储。

代码语言:javascript
运行
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15365589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档