Помощь со структурой JSON - PullRequest
       1

Помощь со структурой JSON

2 голосов
/ 02 сентября 2010

У меня есть следующий 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 ]

4 голосов
/ 02 сентября 2010
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++;
}
2 голосов
/ 02 сентября 2010

Не думаю, что вы могли бы сделать это еще проще, если только в данных нет ничего особенного, что позволило бы каким-либо образом отделить повторяющиеся части.

1 голос
/ 02 сентября 2010

Попробуйте что-то вроде:

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

Или, если вы хотите, чтобы у ваших пользователей были идентификаторы:

{"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 являются числами с плавающей точкой.

0 голосов
/ 04 февраля 2011

Проверьте эту ссылку для кодировки JSON

А пока ваше значение json должно быть закодировано следующим образом

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

Извините, не за вас ....

0 голосов
/ 03 сентября 2010

Я думаю, вы можете попробовать что-то подобное, идея от 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...