Как создать веб-службу ASP.NET, которая возвращает данные в формате JSON?JSON WebService в ASP.NET
ответ
Самое главное, чтобы понять, как представлять данные в формате JSON. Чтобы узнать об этом больше, обратитесь к http://www.json.org/.
Как только вы это понимаете, остальная часть довольно прямолинейна.
Пожалуйста, проверьте следующий URL-адрес для примера.
http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=264 http://code.msdn.microsoft.com/JSONSampleDotNet
http://www.phdcc.com/xml2json.htm
Я рекомендую библиотеку Jquery для этого. Это небольшая богатая библиотека, которая поддерживает вызовы веб-сервисов, обработку выходных данных формата json и т. Д.
Дополнительную информацию можно получить на сайте www.jquery.com.
.NET 3.5 имеет встроенную поддержку. Для .NET 2.0 необходимы дополнительные библиотеки. Я использовал библиотеку Jayrock.
Недавно я выпустил приложение, в котором используется чистый Javascript в браузере (а именно с использованием технологии AJAX, но не с использованием Microsoft AJAX или Scriptaculous и т. Д.), Который выходит за рамки веб-сервисов Microsoft на задней панели. Когда я начал писать это, я был новичком в мире .NET и чувствовал себя ошеломленным всеми фреймворками! Поэтому у меня появилось желание использовать коллекцию небольших библиотек, а не очень большие рамки.
В приложении javascript я вызываю веб-службу, как это. Он напрямую считывает выходные данные веб-службы, отсекает разделы не JSON, затем использует https://github.com/douglascrockford/JSON-js/blob/master/json2.js для анализа объекта JSON.
Это не стандартный подход, но он достаточно прост для понимания и может быть полезен для вас, чтобы использовать или просто узнать о веб-сервисах и JSON.
// enclosing html page has loaded this:
<script type="text/javascript" src="res/js/json2.js"></script>
// Invoke like this:
// var validObj = = callAnyWebservice("WebServiceName", "");
// if (!validObj || validObj.returnCode != 0) {
// alert("Document number " + DocId + " is not in the vPage database. Cannot continue.");
// DocId = null;
// }
function callAnyWebservice(webserviceName, params) {
var base = document.location.href;
if (base.indexOf(globals.testingIPaddr) < 0) return;
gDocPagesObject=null;
var http = new XMLHttpRequest();
var url = "http://mywebserver/appdir/WebServices.asmx/" + webserviceName;
//alert(url + " " + params);
http.open("POST", url, false);
http.setRequestHeader("Host", globals.testingIPaddr);
http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http.setRequestHeader("Content-Length", params.length);
// http.setRequestHeader("Connection", "close");
//Call a function when the state changes.
http.onreadystatechange = function() {
if (http.readyState == 4) {
if (http.status == 200) {
var JSON_text = http.responseText;
var firstCurlyQuote = JSON_text.indexOf('{');
JSON_text = JSON_text.substr(firstCurlyQuote);
var lastCurlyQuote = JSON_text.lastIndexOf('}') + 1;
JSON_text = JSON_text.substr(0, lastCurlyQuote);
if (JSON_text!="")
{
//if (DEBUG)
// alert(url+" " +JSON_text);
gDocPagesObject = eval("(" + JSON_text + ")");
}
}
else if (http.readyState == 4)
{alert(http.readyState + " " + http.status + " " + http.responseText)}
}
}
http.send(params);
if (gDocPagesObject != null) {
//alert(gDocPagesObject.returnCode + " " + gDocPagesObject.returnString);
return gDocPagesObject;
}
else
return "web service unavailable: data not ready";
}
В нашем проекте требования были следующим образом - ASP.NET 2.0 на сервере, и чистый Javascript в браузере (не LIBS JQuery или .NET AJAX)
В этом случае на сервер, просто отметьте веб-метод для использования JSON. Обратите внимание, что оба входных и выходных PARAMS являются JSON отформатирован
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public String Foo(String p1, String p2)
{
return "Result: p1= " + p1 + " p2= " + p2;
}
С яваскрипта стороны, использовать обычный объект XmlHttpRequest, убедитесь, что вы форматировать вход Титулы, как JSON и сделать «Eval» на выходе Parms.
var httpobj = getXmlHttpRequestObject();
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else if(window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");
}
CallService()
{
//Set the JSON formatted input params
var param = "{'p1' : 'value1', 'p2' : 'value2'}";
//Send it to webservice
if(httpobj.readyState == 4 || httpobj.readyState == 0)
{
httpobj.open("POST", 'service.asmx/' + 'Foo', true);
//Mark the request as JSON and UTF-8
httpobj.setRequestHeader('Content-Type','application/json; charset=utf-8');
httpobj.onreadystatechange = OnSuccess;
httpobj.send(param);
}
}
OnSuccess()
{
if (httpobj.readyState == 4)
{
//Retrieve the JSON return param
var response = eval("(" + httpobj.responseText + ")");
}
}
- 1. json webservice asp.net 2.0
- 2. Чтение вывода JSON asp.net webservice
- 3. Позвоните в WebService Asp.Net, отправив параметр JSON
- 4. JSON вернулся из ASP.NET WebService неадекватен
- 5. Проблемы с ASP.net JSON Тип ответа Webservice
- 6. Вызов внешнего json webservice из asp.net C#
- 7. asp.net Webservice возвращает XML вместо JSON
- 8. Задание ASP.net webservice для возврата JSON
- 9. Json из ASP.Net webservice с использованием C#
- 10. Функция Asp.net WebService не возвращается JSON
- 11. JQuery autocomplete в ASP.Net Webservice
- 12. ASP.NET webservice
- 13. Deserialization JSON webservice в Android
- 14. JSON результат в ASMX webservice
- 15. ASP.Net Webservice Serialization
- 16. asp.net 2.0 asmx WebService Исключить __type в ответе JSON
- 17. Передача данных в ASP.Net webservice с помощью JSON
- 18. JQuery Mobile asp.net параметр webservice
- 19. Статические поля в ASP.NET Webservice
- 20. Asp.Net 3.5 Маршрутизация в Webservice?
- 21. Форма тестовой формы ASP.NET WebService
- 22. PhoneGap - Call asp.net webservice
- 23. Webservice не принимает запросы JSON
- 24. Создание WebService C# ASP.Net
- 25. Публикация ASP.net Webservice
- 26. ASP.NET WebService call queueing
- 27. ASP.NET webservice API security
- 28. Asp.net webservice output sort
- 29. WebService ASP.NET C#
- 30. Asp.net webmethod как webservice?
В какой части вам нужна помощь - создание веб-службы или кодирование в JSON? Или оба? Это довольно разные проблемы. – dkretz 2008-11-28 05:50:15