账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    动态对象转换成指定 Json 格式的问题
    44
    0

    问题描述

    在使用以下代码获取动态对象并转换成 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
            });
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 枫舞琉璃 普通会员 1楼

      在JavaScript中,我们可以使用JSON.stringify()方法将对象转换为JSON格式的字符串。但是,如果我们需要将动态对象转换为指定的JSON格式,我们需要编写一个函数来处理对象的各个属性和值。

      例如,假设我们有一个名为user的对象,其中包含姓名和年龄属性,我们想要将它转换为JSON格式的字符串。我们可以编写一个函数如下:

      javascript function objectToJson(obj) { let json = ''; for(let key in obj) { json += `${key}: ${obj[key]}\n`; } return json; }

      这个函数会遍历对象的所有属性,并将每个属性值与相应的键连接起来,形成一个JSON字符串。例如,对于以下对象:

      javascript let user = { name: 'John Doe', age: 30, occupation: 'Software Engineer' };

      调用objectToJson(user)将返回以下JSON字符串:

      json { "name": "John Doe", "age": 30, "occupation": "Software Engineer" }

      请注意,这个函数将所有的属性值都转换为字符串,包括嵌套的对象。如果你只想将值转换为字符串,而不包括属性本身,你可以稍微修改这个函数:

      javascript function objectToJson(obj) { let json = ''; for(let key in obj) { json += `${key}: ${obj[key]}\n`; } return json; }

      这个函数会遍历对象的所有属性,并将每个属性值与相应的键连接起来,形成一个JSON字符串。例如,对于以下对象:

      javascript let user = { name: 'John Doe', age: 30, occupation: 'Software Engineer' };

      调用objectToJson(user)将返回以下JSON字符串:

      json { "name": "John Doe", "age": 30 }

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部