У меня есть процесс SQL Server, который возвращает JSON.Я знаю, что процесс работает и возвращает действительный JSON, поскольку я могу проверить его с помощью различных инструментов, включая функцию SQL isjson.
Однако некоторые инструменты при вызове моего API, который вызывает эти процессы, не могут проверить JSONпоскольку он заключен в двойные кавычки и экранирует каждую двойную кавычку в JSON.
Это вывод SQL:
{"APIResult":[{"ID":200,"Status_Message":"Success","Developer_Message":"Successful login for D56D10AC-3A74-42FC-8BB5-F783A6C0C556 33E4F907-F1E5-4F1B-8CA5-5521291E683A (AppID: (null)).","User_Message":"Successful login","User":[{"ID":"D56D10AC-3A74-42FC-8BB5-F783A6C0C556"}]}]}
И это вывод почтальона:
"{\"APIResult\":[{\"ID\":200,\"Status_Message\":\"Success\",\"Developer_Message\":\"Successful login for D56D10AC-3A74-42FC-8BB5-F783A6C0C556 33E4F907-F1E5-4F1B-8CA5-5521291E683A (AppID: (null)).\",\"User_Message\":\"Successful login\",\"User\":[{\"ID\":\"D56D10AC-3A74-42FC-8BB5-F783A6C0C556\"}]}]}"
Некоторые инструменты синтаксического анализа (jsonlint) подходят для второго формата и возвращают его в качестве действительного JSON.Другие (http://json.parser.online.fr/), не так уж и много. Почтальон, очевидно, счастлив, но мой разработчик мобильных устройств не может заставить его работать как действительный JSON.
После некоторой помощи здесь, я понимаю, что API "должен"выводить заголовок содержимого типа application / JSON, и вывод не должен быть строкой.
Контроллер имеет:
public string Get(string key) {
string message = "";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd2);
da.Fill(ds);
message = ds.Tables[0].Rows[0][0].ToString();
return message;
}
Какой тип подразумевает, что он преобразуется вstring.
Итак, мой вопрос:
Как установить заголовок на выходе, чтобы он возвращал JSON, а не строку?