为了账号安全,请及时绑定邮箱和手机立即绑定

动态对象转换成指定 Json 格式的问题

动态对象转换成指定 Json 格式的问题

青春有我 2019-03-22 18:14:00
问题描述在使用以下代码获取动态对象并转换成 Json 后dynamic realTimeData = db.Database.DynamicSqlQuery("exec QueryRealTimeData @treeId", new SqlParameter("@treeId", treeId)) ; int draw = Request["draw"] != null ? int.Parse(Request["draw"]) : 1; var jsonDataTemp = new {    data = realTimeData,    draw = draw}; return Json(jsonDataTemp, JsonRequestBehavior.AllowGet);发现转换的 Json 格式(如下格式一)并不是我需要的格式:{    "data": [{        "B01-Rtd": 10.285,        "001-Rtd": 7.522,        "011-Rtd": 20.903    }, {        "B01-Rtd": 10.031,        "001-Rtd": 7.518,        "011-Rtd": 20.903    }],    "draw": 1}我实际需要转换成如下格式(格式二),用于 JQuery DataTables 插件的数据源:[{    "COLUMNS": [        {"title": "B01-Rtd"},         {"title": "001-Rtd"},         {"title": "011-Rtd"}        ],    "DATA": [        ["10.285", "7.522", "20.903"],        ["10.031", "7.518", "20.903"]    ],    "draw": 1}]你期待的结果是什么?请教一下如何转换成格式二,或者如何将格式一的数据用于 DataTables 的数据源??注意我这是动态生成的匿名对象,预先不知道会有哪些列,无法显式初始化列,需要动态生成类似格式二的 Json,然后用类似以下 JS 初始化 DataTables$('#example').dataTable({            "data": dataObject[0].DATA,            "columns": dataObject[0].COLUMNS        });
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

格式一转化为格式二:


let data = {

  "data": [{

    "B01-Rtd": 10.285,

    "001-Rtd": 7.522,

    "011-Rtd": 20.903

  }, {

    "B01-Rtd": 10.031,

    "001-Rtd": 7.518,

    "011-Rtd": 20.903

  }],

  "draw": 1

}


function trans(source) {

  let columns = []

  let data = []

  let keys = []

  source.data.forEach((cur, i) => {

    if (i === 0) {

      keys = Object.keys(cur)

      columns = keys.map(key => ({title: key}))

    }

    data.push(keys.map(key => cur[key]))

  })

  return [{

    COLUMNS: columns,

    DATA: data,

    draw: source.draw

  }]

}

trans(data)


查看完整回答
反对 回复 2019-04-10
  • 1 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信