JSON格式的WebMethod的返回值 [英] WebMethod return values in JSON format

查看:815
本文介绍了JSON格式的WebMethod的返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从WebMethod的返回值以JSON格式的客户端?

有,我想返回两个静态的int值。
我是否需要创建新的对象与2个属性,并返回呢?
该getStatus()方法被频繁调用,我不喜欢创建一个特殊的对象,每次只为JSON格式...

的想法

  [WebMethod的]
公共静态的getStatus INT()
{
    INT statusProcess,statusProcessTotal;

    Status.Lock.EnterReadLock();
    statusProcess = Status.Process; //静态字段
    statusProcessTotal = Status.ProcessTotal; //静态字段
    Status.Lock.ExitReadLock();

    返回 ...
}
 

在客户端我赶在返回值:

 函数OnSucceeded(结果的UserContext,方法名)
(PageMethods.GetStatus(OnSucceeded,OnFailed);)
 

解决方案

我只想去一个对象。它适合什么,你需要做的。如果你有两个返回值,你必须把它们放在一起以结构化方式。

 公共类StatusResult
        {
            公众诠释StatusProcess {获得;组; }
            公众诠释StatusProcessTotal {获得;组; }
        }

  [WebMethod的]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)
        公共StatusResult的getStatus()
        {
            INT statusProcess,statusProcessTotal;

            //Status.Lock.EnterReadLock();
            statusProcess = 5;
            statusProcessTotal = 1; //静态字段


            VAR的结果=新StatusResult();
            result.StatusProcess = statusProcess;
            result.StatusProcessTotal = statusProcessTotal;

            返回结果;
        }
 

How to return values from Webmethod to the client in JSON format?

There are two static int values that i want to return.
Do I need to create new object with those 2 properties and return it?
The GetStatus() method is called frequently and i don't like the idea of creating a special object each time just for json formatting...

[WebMethod]
public static int GetStatus()
{
    int statusProcess,statusProcessTotal;

    Status.Lock.EnterReadLock();
    statusProcess=Status.Process; //Static field
    statusProcessTotal=Status.ProcessTotal; //Static field        
    Status.Lock.ExitReadLock();

    return ...
}

On client side I catch the return value in :

function OnSucceeded(result, userContext, methodName)   
(PageMethods.GetStatus(OnSucceeded, OnFailed);)

解决方案

I would just go with an object. It fits with what you need to do. If you have two return values you have to put them together in a structured way.

  public class StatusResult
        {
            public int StatusProcess { get; set; }
            public int StatusProcessTotal { get; set; }
        }

  [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public StatusResult GetStatus()
        {
            int statusProcess,statusProcessTotal;

            //Status.Lock.EnterReadLock();
            statusProcess = 5;
            statusProcessTotal = 1; //Static field        


            var result = new StatusResult();
            result.StatusProcess = statusProcess;
            result.StatusProcessTotal = statusProcessTotal;

            return result;
        }

这篇关于JSON格式的WebMethod的返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆