Muszę analizować stolik do JSON, znalazłem to rozwiązanie i to działa:

    var tab=[{"value":"1.0","label":"Alabama"},{"value":"2.0","label":"Alaska"},        {"value":"3.0","label":"American Samoa"}];
    var myJsonString = JSON.stringify(tab);  
    var jsonData = $.parseJSON(myJsonString);

Problem polega na tym, kiedy zadeklaruję dynamicznie dwudniową tabelę "zakładką", nie działa:

    var tab_desc1= new Array(3);
    tab_desc1[0]=new Array(2);
    tab_desc1[0]["value"]="1.0";
    tab_desc1[0]["label"]="Alabama";
    tab_desc1[1]=new Array(2);
    tab_desc1[1]["value"]="2.0";
    tab_desc1[1]["label"]="Alaska";
    tab_desc1[2]=new Array(2);
    tab_desc1[2]["value"]="3.0";
    tab_desc1[2]["label"]="American Samoa";
    var myJsonString = JSON.stringify(tab_desc1);    
    var jsonData = $.parseJSON(myJsonString);

Logicznie moja deklaracja zawiera błąd, ale nie widzę tego. Jakaś pomoc! Dzięki.

0
Kimo_do 17 sierpień 2012, 06:13

2 odpowiedzi

Najlepsza odpowiedź
tab_desc1[0] = new Array(2);

Powinien być

tab_desc1[0] = {};

Tak samo z innymi.

Ale nie znam celu strumienia zmiennej do ciągów, a następnie przedstawię go.

2
xdazz 17 sierpień 2012, 02:20

Problem polega na tym, że tablice i przedmioty nie są tym samym.

Twój pierwszy kod tworzy tablicę obiektów .

Twój drugi kod tworzy tablicę tablice , ale następnie ustawia właściwości numeryczne w tych tablicach. JS Tablice są typem obiektu, więc nie jest to błąd, aby ustawić właściwości non-numeryczne, ale {X0}} będzie zawierał tylko właściwości numeryczne. Musisz to zrobić:

var tab_desc1 = []; // Note that [] is "nicer" than new Array(3)
tab_desc1[0] = {};  // NOTE the curly brackets to create an object not an array
tab_desc1[0]["value"] = "1.0";
tab_desc1[0]["label"] = "Alabama";
tab_desc1[1] = {};  // curly brackets
tab_desc1[1]["value"] = "2.0";
tab_desc1[1]["label"] = "Alaska";
tab_desc1[2] = {};  // curly brackets
tab_desc1[2]["value"] = "3.0";
tab_desc1[2]["label"] = "American Samoa";

var myJsonString = JSON.stringify(tab_desc1);    
var jsonData = $.parseJSON(myJsonString);

Możesz też to zrobić:

var tab_desc1 = [];
tab_desc1[0] = {"value":"1.0","label":"Alabama"};
tab_desc1[1] = {"value":"2.0","label":"Alaska"};
tab_desc1[2] = {"value":"3.0","label":"American Samoa"};

(Dlaczego, dlaczego drustify, a następnie natychmiast analizuj, aby wrócić ten sam obiekt?)

1
nnnnnn 17 sierpień 2012, 02:30