WebMethod return values in JSON format

15,714

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;
        }
Share:
15,714

Related videos on Youtube

kenny
Author by

kenny

Updated on June 04, 2022

Comments

  • kenny
    kenny almost 2 years

    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);)
    
  • kenny
    kenny over 14 years
    What about recreating new object every time the method is called? Doesn't it affect efficiency?
  • Jason Rowe
    Jason Rowe over 14 years
    I've never had a problem. I think you are over thinking it.
  • Jason Rowe
    Jason Rowe over 14 years
    It happens to the best of us.
  • kenny
    kenny over 14 years
    I've voted you up :) . If there won't be any new answer i will accept yours.