【问题标题】:Asp.Net Returning Custom Object in jsonAsp.Net 在 json 中返回自定义对象
【发布时间】:2012-01-07 14:42:51
【问题描述】:

我有一个 CodeWithMessage 类,我想从我的网络服务中以 json 格式返回。

类是这样定义的

namespace UserSite //Classes For my site
{
    namespace General
    {
        public class CodeWithMessage
        {
            private int iCode = 0;
            private string sMessage = "";
            public CodeWithMessage(int Code, string Message)
            {
                iCode = Code;
                sMessage = Message;
            }
            public CodeWithMessage()
            {
            }
            public void Message(string lMessage)
            {
                sMessage = lMessage;
            }
            public void Code(int lCode)
            {
                iCode = lCode;
            }
        }

在我有的网络服务中

[WebMethod(Description = "Creates A New Blog.")]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public CodeWithMessage AddNewBlog(string sTitle, string sDescription, string sOohrl, int iCategory=30)
    {
        CodeWithMessage CWM;
        CWM = new CodeWithMessage();
        CWM.Message("That url Is In Use");
        CWM.Code(0);
        return CWM;

我发布了正确的值(我截断了函数,但它得到了它需要并执行的内容) 我回来了

{"d":{"__type":"UserSite.General.CodeWithMessage"}}

我不确定为什么我没有返回一个带有值的实际 json 对象,而只是返回类名?我以为 asp.net 会自动序列化对象?不是吗??

提前致谢

【问题讨论】:

    标签: c# javascript asp.net json web-services


    【解决方案1】:

    您必须使用JavaScriptSerializer 的公共属性来序列化您想要的JSONJavaScriptSerializer 不能公开方法和私有字段。

    namespace UserSite //Classes For my site
    {
        namespace General
        {
            public class CodeWithMessage
            {         
                public int Code { get; set; }
                public string Message { get; set; }
            }
         }
    }
    
    ..............
    //usage
    CodeWithMessage CWM = new CodeWithMessage();
    CWM.Message = "That url Is In Use";
    CWM.Code = 0;
    return CWM;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2019-03-31
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多