c# - Asp.Net 在 json 中返回自定义对象

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

我有一个 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;

我发布了正确的值(我 chop 了函数但它得到了它需要的并正在执行) 我回来了

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

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

提前致谢

最佳答案

您必须为 JavaScriptSerializer 使用公共(public)属性序列化 JSON像你要的那样。 JavaScriptSerializer不能公开方法或私有(private)字段。

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;

关于c# - Asp.Net 在 json 中返回自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290777/

相关文章:

c# - 获取动态创建的下拉值

c# - 从字典中删除口是心非的内容

c# - 寻找十进制数据的直方图分箱算法

javascript - 无法在不刷新页面的情况下单击 div 中的 span #id

java - Struts2:如何在 ActionSupport 中获取 ServletRequest 实例

asp.net - 将css文件添加到cshtml文件?

c# - 在具有多个 T 类型组件的游戏对象上调用 GetComponent<T> 时,Unity 如何决定返回哪个组件?

javascript - 使用 Bootstrap 和 AngularJS 的单页应用程序

c# - 使用分布式 Web 服务查询多个数据库

asp.net - ASP.NET 中的多语言静态内容