2017-11-16 97 views
7

Mam restful API, który jest napisany w języku C# za pomocą dot net framework 4.5 .. Obecnie działa dobrze ... Zwracam wynik po konwersji JSON .. I "oczekuję czystego wyniku JSON ... którego nie otrzymuję obecnie ... Spodziewam się prostego rozwiązania, aby pominąć ciąg znaków XMLNS w głównym elemencie, w którym zwracam JSON ... Wynik otrzymuję: resultUsuwanie przestrzeni nazw XML w C# restful web service zwrócił ciąg

mój kod:

public String GetAllSalesInvoices(string customer_id, string Startdate, string Enddate) 
    { 
     System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 

     string query = "SELECT * FROM sales_invoice WHERE customer_id =" + customer_id + " AND invoice_date BETWEEN '" + Startdate + "' AND '" + Enddate + "'"; 
     DataSet ds = conObj.execQuery(query); 
     DataTable dt = new DataTable(); 
     dt = ds.Tables[0]; 


     List<sales_invoice> result = new List<sales_invoice>(); 

     foreach (DataRow dr in dt.Rows) 
     { 
      sales_invoice inv = new sales_invoice() 
      { 
       Invoice_id = Convert.ToInt32(dr["invoice_id"]), 
       Invoice_date = Convert.ToString(dr["invoice_date"].ToString()), 
       Customer_id = Convert.ToInt32(dr["customer_id"]), 
       Product_id = Convert.ToInt32((dr["product_id"])), 
       Time = Convert.ToString((dr["time"]).ToString()), 
       Quantity = Convert.ToInt32((dr["quantity"])), 
       Unit_of_measure = Convert.ToString(dr["unit_of_measure"]), 
       Product_price = Convert.ToInt32((dr["product_price"])), 
       Sub_total = Convert.ToInt32((dr["sub_total"])), 
      }; 
      result.Add(inv); 
     } 
     string json=serializer.Serialize(result); 
     return json; 
} 

Dzięki

+0

Spodziewam się napisanego kodu ... Proszę zaktualizować pytanie. – FIL

+1

Czy używasz aplikacji webowej? Jeśli tak - https://stackoverflow.com/questions/9847564/how-do-i-get-asp-net-web-api-to-return-json-instead-of-xml-using-chrome – Steve

+0

Nie jestem o niespokojną usługę internetową @ Steve – SelakaN

Odpowiedz

0

Cześć, w końcu udało mi się wymyślić odpowiedź na usunięcie przestrzeni nazw xml lub przestrzeni nazw w zamian. Rozwiązaniem jest użycie metody kontekstowej i napisanie treści bezpośrednio do przeglądarki. Do tego możesz użyć tego kodu.

String result =js.Serialize(data); 
this.Context.Response.ContentType = "application/json; charset=utf-8"; 
this.Context.Response.Write(result); 

Spowoduje to zapisanie nieprzetworzonych danych Json do przeglądarki bez żadnych przestrzeni nazw. Zauważ, że nie można go używać w kontekście spokojnego API, ponieważ może być tam inaczej.