Передачи данных JSON строку в службе REST (метод POST) на C#
В моем проекте я должен передать динамическую строку Json в службу WCF Rest. Здесь оба ввода / вывода должны быть в формате Json. Я использую серверный код для передачи своих данных. Вот мой код
В testpage.aspx-файл.CS страницы
string json = "{\"sjSonData\":[{" + "\"log_Id\" : 0," + "\"user_Id\" : 1249," + "\"session_key\" : \"dvnoewcdw\"," + "\"app_id\" : 1," + "\"app_version\" :\"1.2.7\"," + "\"app_isOnline\" : true," + "\"app_dateTimeZone\" : \"1997-07-16T19:20:30+01:00\"," + "\"log_typeId\" : 1," + "\"log_description\" : \"valid\"" + "}," + "{" + "\"log_Id\" : 1," + "\"user_Id\" : 1249," + "\"session_key\" : \"dvnoewcdw\"," + "\"app_id\" : 1," + "\"app_version\" : \"1.2.7\"," + "\"app_isOnline\" : true," + "\"app_dateTimeZone\" : \"1997-07-16T19:20:30+01:00\"" +"}]}"; const string url = "http://localhost/RestServiceImpl.svc/jsoninputdata"; //create an HTTP request to the URL that we need to invoke HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/json; charset=utf-8"; //set the content type to JSON request.Method = "POST"; //make an HTTP POST using (var streamWriter = new StreamWriter(request.GetRequestStream())) { //initiate the request JavaScriptSerializer serializer = new JavaScriptSerializer(); var resToWrite = serializer.Deserialize<Dictionary<string, object>>(json); streamWriter.Write(restoWrite); streamWriter.Flush(); streamWriter.Close(); } // Get the response. WebResponse response = request.GetResponse(); var streamReader = new StreamReader(response.GetResponseStream()); var result = streamReader.ReadToEnd();
Я новичок в службе WCF. Я не знаю, как передать эти данные в Службу Rest. Здесь мои входные данные отличались друг от друга при каждом звонке.
Код услуги отдых
[ServiceContract] public interface IRestServiceImpl { [OperationContract] [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "jsoninputdata")] string jsoninputdata(List<Dictionary<string, object>> rData); } public class RestServiceImpl : IRestServiceImpl { public jSonResponseData jsoninputdata(List<Dictionary<string, object>> rData) { string json = JsonConvert.SerializeObject(rData); //Do my stuff here..... return ojSonRes; // Here i need to return my output mentioned below } }
И мне нужно вернуть данные (вывод), как показано ниже,
Условие 1: Если оба сохранены в БД без каких-либо ошибок,
{"sjSonData": [{"success": true }]}
Условие 2: Предположим, что какие-то данные не удалось сохранить в базе данных, то
{"sjSonData": [ {"log_Id":1, "success": false}, {"log_Id":2, "success":true } ]}
Теперь я получаю такой результат, как,
{"sjSonData":"{}"}
Неужели я делаю что-то не так?!!!! а также, Пожалуйста, объясните, какие все изменения я должен сделать в файле web.config.