2015-04-20 3 views
0

Я с трудом создает некоторый код, который динамически создает графики:Добавить динамический JSON статического JSON

Следующий фрагмент кода позволяет создать график:

   xGrid: false, 
       legend: true, 
       title: 'Meetings and Hours Used', 
       points: [ 
        [7, 26, 33, 74, 12, 49, 33, 33, 74, 12, 49, 33], 
        [32, 46, 75, 38, 62, 20, 52, 75, 38, 62, 20, 52] 
       ], 

И я заменил раздел точек с этим:

points: <%= getJson() %> 

И мой код позади имеет функцию:

public string getJson() 
    { 
     var publicationTable = new List<object>{ 
     new { points = "[1,2,3,4,5,6,7,8]," } 


    }; 
     return (new JavaScriptSerializer()).Serialize(publicationTable); 
    } 

javascript, кажется, не разобрался - может кто-нибудь мне помочь :)

+0

Этот проект MVC? – pjobs

+0

нет дополнительной запятой в точках = "[1,2,3,4,5,6,7,8],"? –

ответ

3

Попробуйте это.

public string getJson() { 
    var publicationTable = new[] { 
     new[] { 1, 2, 3, 4, 5 }, 
     new[] { 6, 7, 8, 9, 10 } 
    }; 
    return (new JavaScriptSerializer()).Serialize(publicationTable); 
} 
1
List<List<int>> lstMainArr = new List<List<int>>(); 
     lstMainArr.Add(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.ToList<int>()); 
     lstMainArr.Add(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.ToList<int>()); 

     Console.Write((new JavaScriptSerializer()).Serialize(lstMainArr)); 
1

точки: <% = getJson()%>

Воспроизводит независимо от типа возвращаемого результата является, поэтому, например:

points: 8  // getJson() returns int 
points: test // getJson() returns a string 

если вы сделал:

points = "[1,2,3,4,5,6,7,8],"; 
return points: 

результат был бы:

points = [1,2,3,4,5,6,7,8], 

Однако у вас есть:

var publicationTable = new List<object> { 
    new { points = "[1,2,3,4,5,6,7,8]," } 
}; 

return (new JavaScriptSerializer()).Serialize(publicationTable); 

Таким образом, чтобы определить выход, пройти через каждый наружный к внутреннему метода/объекта.

Шаг 1: Сериализация - создает пустую строку.

"" 

Шаг 2: Сериализация List<Object> (в основном массив JavaScript)

"[]" 

Шаг 3: Сериализация первый анонимный объект:

"[{}]" 

Шаг 4: Сериализация первое свойство:

"[{"points" : "[1,2,3,4,5,6,7,8],", }]" 

Больше нет объектов, нет объектов, завершена сериализация. This is not the JSON you were looking for.

Смежные вопросы