Объект Json возвращается в веб-сервис, который получает i / p как
[OperationContract(Name = "Create")]
[WebInvoke(UriTemplate = "/Create/Data", Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json)]
bool CreateCustomer(StringBuilder objCustomer);
// в моем сервисном файле я десериализирую объект i / p obj для моего объекта класса и вставляю
public bool Create(StringBuilder strObj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
Customer custObj = js.Deserialize<Customer>(strObj.ToString());
bool Inserted = false;
// соединение установлено и в него помещены данные
из клиента im asp.net объект сериализуется в формат json, и его можно вставить в мою БД, но из Android объект JSON, который они отправляют, не может быть распознан моим сервисом ... но ответ на них идет как "ОК 200" ..
код андроида
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
String URL ="http://10.242.48.54/restinsert/Service1.svc/Create/Data";
try{
HttpPost post = new HttpPost(URL);
json.put("CNo",200);
json.put("CName","addme");
StringEntity se = new StringEntity(json.toString());
se.setContentType("application/json; charset=utf-8");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json; charset=utf-8"));
post.setHeader("Accept","application/json");
post.setHeader("Content-type","application/json; charset=utf-8");
String ss= post.toString();
response = client.execute(post);
создал новый класс для сериализации и десериализации
public class Json
{
public string JsontoString(string obj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
js.Serialize(obj, sb);
return sb.ToString();
}
public string StringtoJson(string obj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
Customer custObj = js.Deserialize<Customer>(obj.ToString());
return custObj.ToString();
}
}
}