Member 13366575 Ответов: 1

Как ответить на json в стандартном формате с помощью C#


Здравствуйте, я работаю с веб-сервисами и отвечаю на результат в веб-методе в формате json. здесь я хотел формат json как показано ниже
{"Response":{"Status":"Success","Data":[{"StudentName":"Student Name","ClassName":"Class Name","DivisionName":"Div Name"}]}}

но мой вывод отображается следующим образом
{"Response":[{"Status":"Success","Data":{"StudentName":"Student Name","ClassName":"Class Name","DivisionName":"Class Name"}}]}

пожалуйста, помогите мне отобразить его в стандартном формате.

Что я уже пробовал:

это мой код.
    struct ReturnValues
    {
        public string Status;
        public object Data;
    }

      public class Login
{
    public string StudentName { get; set; }
    public string ClassName { get; set; }
    public string DivisionName { get; set; }

}



     [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void Login(string UserName, string Password)
    {
        var ResultResponse = new Dictionary<string, ReturnValues[]>();
        ResultResponse.Add("Status", new ReturnValues[1]);
        if (username == "" && Password == "")
        {
            Login stud = new Login();

            stud.StudentName = "Student Name";
            stud.ClassName = "Class Name";
            stud.DivisionName = "Div Name";

            ResultResponse["Response"][0] = new ReturnValues { Status = "Success", Data = stud };
        }
        else
        {
            ResultResponse["Response"][0] = new ReturnValues { Status = "Fail", Data = "Invalid UserName Or Password" };
        }
        JavaScriptSerializer js = new JavaScriptSerializer();
        Context.Response.Write(js.Serialize(ResultResponse));

    }

Richard MacCutchan

Вы объявили свой элемент ответа как словарь, так что он отображается (правильно) как массив в сериализованном JSON.

1 Ответов

Рейтинг:
0

prafull trivedi

попробовать это:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
общественного недействительными логин(строка имя пользователя, строка пароля)
{
var ResultResponse = новый словарь<string, ReturnValues>();

if (username == "" && Password == "")
{
Login stud = новый логин();

шпилька.StudentName = "Имя Студента";
шпилька.ClassName = "Имя Класса";
шпилька.DivisionName = "Имя Div";

ResultResponse["ответ"] = новая ReturnValues { состояние = "успех", данные = шпилька };
}
еще
{
ResultResponse["Response"]= new ReturnValues { Status = "Fail", Data = "неверное имя Пользователя или пароль" };
}
JavaScriptSerializer js = новый JavaScriptSerializer();
Контексте.Ответ.Пишут(на JS.Сериализовать(ResultResponse));

}