当前位置: 首页 > 面试题库 >

如何为采用类参数的asp.net Web方法格式化JSON

黎玺
2023-03-14
问题内容

我在页面后面的asp.net代码上有以下webmethod:

[WebMethod(EnableSession = true)]
public static bool SaveFailureData(SimpleFailureData data)
{

}

SimpleFailureData定义如下:

public class SimpleFailureData
{
    public int Id { get; set; }
    public string Comments { get; set; }
    public double Score { get; set; }
    public double Adjustment { get; set; }
    public List<ShutdownData> ShutdownData { get; set; }
}

public class ShutdownData
{
    public int Id { get; set; }
    public string Description { get; set; }
    public bool CausedShutdown { get; set; }
    public string ShutdownType { get; set; }
}

我想弄清楚的是如何调用此网络方法并格式化我的数据,以便将其正确投影/解析到该类中,以便我可以使用它。我尝试向该方法发送json字符串,但是我的方法中的断点从未被命中(因此,我认为该方法由于数据格式不正确而无法调用)。

这是我尝试发送然后调用方法的JSON:

json = JSON.stringify( {
    Comments: comments,
    Score: score,
    Adjustment: seAdjustmentValue,
    ShutdownData: breakdowns //this is an array of shutdown objects
});

PageMethods.SaveFailureData(json, function(data) {
    return;
});

但这无法进入我的方法。有关应采用哪种JSON格式的任何提示,以便将类作为参数正确传递,这是正确的?

这是我尝试发送给该方法的JSON:

{
"Comments":"",
"Score":66.66666666666667,
"Adjustment":0,
"ShutdownData":[{"Id":"401","CausedShutdown":true,"ShutdownType":"NORMAL"}]
}

问题答案:

好的,试试这个

    public static bool SaveFailureData(string sampleFailure)
    {
        JavaScriptSerializer s = new JavaScriptSerializer();
        SimpleFailureData sdata = s.Deserialize<SimpleFailureData>(sampleFailure);
        return true;
    }

    var json = {
                "Comments": "",
                "Score": 66.66666666666667,
                "Adjustment": 0,
                "ShutdownData": [{ "Id": "401", "CausedShutdown": true, "ShutdownType": "NORMAL"}]
            }

            var data = JSON.stringify(json);

            $.ajax({
                type: "POST",
                url: 'Default.aspx/SaveFailureData',
                contentType: 'application/json; charset=utf-8',
                data: "{'sampleFailure' : '" + data + "'}",
               // data: data,
                dataType: 'json',
                success: function (msg) {
                    alert(msg.d);
                },
                error: function (msg) {
                    alert('Error!');
                }
            });

        });

您将在sdata对象中获取数据。



 类似资料:
  • 我有一个抽象超类和两个非抽象子类和。如何在超类方法中定义类型,如下所示 我允许在子类方法中编写具体类型(例如,或) 在上面的示例中,子类方法不会覆盖超类方法。

  • 本文向大家介绍layui使用templet格式化表格数据的方法,包括了layui使用templet格式化表格数据的方法的使用技巧和注意事项,需要的朋友参考一下 增加js /*---------------------格式化时间开始--------------------------*/ /*---------------------格式化时间结束--------------------------

  • 本文向大家介绍Python 如何优雅的将数字转化为时间格式的方法,包括了Python 如何优雅的将数字转化为时间格式的方法的使用技巧和注意事项,需要的朋友参考一下 将数字转化成时间格式 print(c) 2017-08-25 00:00:00 将时间按照天排列,转化为一个数字,用来做时间序列分析 将时间转化为时间戳 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 如何用Java格式化数字? 什么是“最佳做法”? 格式化之前是否需要四舍五入一个数字? 等等 问题答案: 在此线程中,有不同的方法可以执行此操作:

  • 在java中,我们可以缩小返回类型和throws异常类型(甚至删除throws子句): 但是,参数类型呢(如果A采用< code>T,那么为什么B不采用< code >?超级T)如: 让我们考虑一下我认为完全符合逻辑的这段代码: 所以我要说的是,在使用的代码上下文中仍然有效。