帮助JSON结构

时间:2010-09-02 14:26:39

标签: javascript jquery json

我有以下javascript,我需要动态。

data.addRows(2);
data.setValue(0, 0, 'name goes here');
data.setValue(0, 1, value 1 goes here); 
data.setValue(0, 2, value 2 goes here); 
data.setValue(1, 0, 'name goes here');
data.setValue(1, 1, value 1 goes here); 
data.setValue(1, 2, value 2 goes here); 

我想循环是最好的方法:

我想出了以下json结构:

[ 
    {"User1":{"value1": 50.00,"value2": "100"}}, 
    {"User2":{"value1": 10.00,"value2": "20"}}, 
    {"User3":{"value1": 10.00,"value2": "20"}}, 
    {"User4":{"value1": 10.00,"value2": "20"}}, 
    {"User5":{"value1": 20.00,"value2": "40"}} 
] 

我认为这种结构需要改进。有人可以建议一个更好的结构,让我很容易提取我想从中提取的数据吗?

5 个答案:

答案 0 :(得分:4)

var dataset = [
  {uid: 'user1', value1: 50.00, value2: 100},
  {uid: 'user2', value1: 10.00, value2: 20}, 
];

通过这种方式,你可以data.length计算出你有多少值,并且可以更容易地循环。例如:

for(i = 0; i < dataset.length; i++) {
   console.log(data[i].uid);
}

使用您的示例:

data.addRows(2); 
var l = dataset.length, i, x = 0, y = 0;
for(i = 0; i < l; i++) {
  data.setValue(y, x, dataset[i].uid); x++;
  data.setValue(y, x, dataset[i].value1); x++;
  data.setValue(y, x, dataset[i].value2); x=0;
  y++;
}

答案 1 :(得分:2)

我不认为你可以让它变得更简单,除非有一些特殊的数据可以让重复的部分以某种方式分离出来。

答案 2 :(得分:1)

尝试类似:

{"users": [
    {"value1": 50, "value2": 100},
    {"value1": 10, "value2": 20},
    {"value1": 10, "value2": 20},
    {"value1": 10, "value2": 20},
    {"value1": 20, "value2": 40}
]}

或者,如果您想让您的用户拥有ID:

{"users": {
    "userId1": {"value1": 50, "value2": 100},
    "userId2": {"value1": 10, "value2": 20},
    "userId3": {"value1": 10, "value2": 20},
    "userId4": {"value1": 10, "value2": 20},
    "userId5": {"value1": 20, "value2": 40}
}}

请记住,JavaScript中的所有数字都是浮点数。

答案 3 :(得分:0)

我认为你可以尝试这样的东西,这个想法来自ColdFusion SerializeJson()

我认为您的数据就像一张表

user        value1        value2
------------------------------------
user1       50            100
user2       10            20
...

json结构是

{"COLUMNS":["USER","VALUE1","VALUE2"],"DATA":[["user1",50.0,100.0],["user2",10.0,20.0]]} 

更清晰的阅读

{
    "COLUMNS":
        [
            "USER",
            "VALUE1",
            "VALUE2"
        ],
    "DATA":
        [
            [
                "user1",
                50.0,
                100.0
            ],
            [
                "user2",
                10.0,
                20.0
            ]
        ]
}

有了这个结构,我们知道每个varname.DATA [index] [0]都是指USER

答案 4 :(得分:0)

点击json encoding

的此链接

现在你的json值应该像这样编码

{"id":8,"heading":"heading goes here","content":"&lt;p&gt;content goes here&lt;\/p&gt;"}

对不起你......