2016-02-02 35 views
0

我需要改变由JavaScript JSON格式或C#... 的方法,后面的代码生成JSON数据是这样的:更改JSON格式或C#

public string DataTableToJSONWithStringBuilder(DataTable table) 
     { 
      var JSONString = new StringBuilder(); 
      if (table.Rows.Count > 0) 
      { 
       JSONString.Append("["); 
       for (int i = 0; i < table.Rows.Count; i++) 
       { 
        JSONString.Append("{"); 
        for (int j = 0; j < table.Columns.Count; j++) 
        { 
         if (j < table.Columns.Count - 1) 
         { 
          JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\","); 
         } 
         else if (j == table.Columns.Count - 1) 
         { 
          JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\""); 
         } 
        } 
        if (i == table.Rows.Count - 1) 
        { 
         JSONString.Append("}"); 
        } 
        else 
        { 
         JSONString.Append("},"); 
        } 
       } 
       JSONString.Append("]"); 
      } 
      return JSONString.ToString(); 
     } 

我访问过的jQuery的方法AJAX

var tahun = $("#<%=txbTahun.ClientID %>").val(); 
    $.ajax({ 
     type: "POST", 
     url: "/ProjMonitor/Report/ProjectMonitoringSummary.aspx/GetData", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: "{tahun:" + tahun + "}", 
     contentType: "application/json; charset=utf-8", 
     success: function (msg) { 
      var dataLevel = JSON.stringify(msg); 
     // alert(dataLevel); 
      ShowData(dataLevel,''); 
     }, 
     error: function (msg) { 

     } 
    }); 

然后输出(dataLevel)turnsout是这样:

{d:[ 
    { 
     "1332879360000.0": 300, 
     "1332797760000.0": 353, 
     "1332799320000.0": 358, 
     "1332879780000.0": 302, 
     "1332800160000.0": 359, 
     "1332880200000.0": 299, 
     "1332880620000.0": 298, 
     "1332881040000.0": 301, 
     "1332881460000.0": 402, 
     "1332880020000.0": 330, 
     "1332882300000.0": 466, 
     "1332796620000.0": 519, 
     "1332800520000.0": 447, 
     "1332797460000.0": 359, 
     "1332801000000.0": 442 
    }, 
{ 
     "1332879360000.0": 300, 
     "1332797760000.0": 353, 
     "1332799320000.0": 358, 
     "1332879780000.0": 302, 
     "1332800160000.0": 359, 
     "1332880200000.0": 299, 
     "1332880620000.0": 298, 
     "1332881040000.0": 301, 
     "1332881460000.0": 402, 
     "1332880020000.0": 330, 
     "1332882300000.0": 466, 
     "1332796620000.0": 519, 
     "1332800520000.0": 447, 
     "1332797460000.0": 359, 
     "1332801000000.0": 442 
    } 

]} 

我需要的格式是这样的...我应该改变什么或者可以转换它的JavaScript函数?

[ 
    { 
     "1332879360000.0": 300, 
     "1332797760000.0": 353, 
     "1332799320000.0": 358, 
     "1332879780000.0": 302, 
     "1332800160000.0": 359, 
     "1332880200000.0": 299, 
     "1332880620000.0": 298, 
     "1332881040000.0": 301, 
     "1332881460000.0": 402, 
     "1332880020000.0": 330, 
     "1332882300000.0": 466, 
     "1332796620000.0": 519, 
     "1332800520000.0": 447, 
     "1332797460000.0": 359, 
     "1332801000000.0": 442 
    }, 
{ 
     "1332879360000.0": 300, 
     "1332797760000.0": 353, 
     "1332799320000.0": 358, 
     "1332879780000.0": 302, 
     "1332800160000.0": 359, 
     "1332880200000.0": 299, 
     "1332880620000.0": 298, 
     "1332881040000.0": 301, 
     "1332881460000.0": 402, 
     "1332880020000.0": 330, 
     "1332882300000.0": 466, 
     "1332796620000.0": 519, 
     "1332800520000.0": 447, 
     "1332797460000.0": 359, 
     "1332801000000.0": 442 
    } 
] 
+0

解决......我访问它直通msg.d – user1851384

+0

Ajax请求始终以 “d” 对象返回,所以我建议做JSON.stringify(msg.d); –

+0

@ user1851384,如果你已经解决了这个问题。发布它作为答案,以便将来可以帮助其他人。 – rjdkolb

回答

0

你得到一个返回的对象,其中一个属性d持有你想要的数组。要获得该阵列,只需执行dataLevel.d

所以......

var tahun = $("#<%=txbTahun.ClientID %>").val(); 
$.ajax({ 
    type: "POST", 
    url: "/ProjMonitor/Report/ProjectMonitoringSummary.aspx/GetData", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data: "{tahun:" + tahun + "}", 
    contentType: "application/json; charset=utf-8", 
    success: function (msg) { 
     var dataLevel = JSON.stringify(msg); 
    // alert(dataLevel.d); 
     ShowData(dataLevel.d,''); 
    }, 
    error: function (msg) { 

    } 
});