【问题标题】:Generating array of arrays生成数组数组
【发布时间】:2015-12-21 08:35:29
【问题描述】:

我有一个返回 JSON 的 Web-API 方法,我希望数组结构如下所示: [ [123, 1.1], [222, 3.9] ]

我的 Web API 控制器正在返回以下格式的 JSON: [{"CreatedDate":1314736440,"Reading":20.0}, "CreatedDate":1314779640,"Reading":7.9}]

Web API 控制器:

[HttpGet]
 public HttpResponseMessage AllJson()
 {
     using (var ctx = new SomeContext())
     {
         var records = ctx.DataX.ToList();
         var dtos = Mapper.Map<...>(records);
         return new HttpResponseMessage
         {
             StatusCode = HttpStatusCode.OK,
             Content = new StringContent(JsonConvert.SerializeObject(dtos), Encoding.UTF8, "application/json")
         };
     }
 }

DTO

public class DtoModel
    {
        public int CreatedDate { get; set; }
        public double Reading { get; set; }
    }

Javascipt 示例:

var seriesData = [];
        $.getJSON("api/xxx/AllJson ", function (data) {
            $.each(data, function (key, val) {
                seriesData.push(val.CreatedDate.toString() + " ," + val.Reading.toString());
                console.log(val.CreatedDate + " ," + val.Reading);
            });
        });

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-web-api json.net


    【解决方案1】:

    我认为这可能会解决您的问题.. 从结构上看,这应该看起来像 [[a,b],[c,d]];

    var createSeriesData = function(){
        seriesData = [];
        JSON_obj = JSON.parse('[{"CreatedDate":1314736440,"Reading":20.0},{"CreatedDate":1314779640,"Reading":7.9}]');
    
        for(var key in JSON_obj){
            if(JSON_obj.hasOwnProperty(key)){
                seriesData[key] = [];
                seriesData[key].push(JSON_obj[key].CreatedDate.toString());
                seriesData[key].push(JSON_obj[key].Reading.toString());
            }
    
        }
    
        console.log(seriesData);
    }
    

    【讨论】:

      【解决方案2】:

      您需要创建一个包含许多长度为 2 的数组的单个数组。

      查看此代码:

       $.getJSON("api/xxx/AllJson")
                  .done(function (data) {
                      var processedJson = new Array();
                      $.map(data, function (obj, i) {
                          processedJson.push([obj.CreatedDate, obj.Reading]);
                      });
      
                      FunctionToDoSomethingWithYourDataStructure(processedJson);
                  });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-13
        • 2012-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-13
        • 2014-03-29
        相关资源
        最近更新 更多