2017-11-16 74 views
7

Tôi đang có API yên tĩnh được viết bằng C# bằng cách sử dụng khung net dot 4.5 .. Hiện tại nó hoạt động ... tôi trả lại kết quả sau khi chuyển đổi JSON .. đang mong đợi một kết quả JSON thuần túy ... mà tôi không nhận được hiện tại .. Tôi hy vọng giải pháp đơn giản để bỏ qua chuỗi XMLNS ở phần tử gốc, nơi tôi trả về JSON ... Kết quả tôi nhận được: resultLoại bỏ các không gian tên xml trong C# dịch vụ web an toàn trả về chuỗi

mã của tôi:

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; 
} 

Cảm ơn

+0

Tôi đang mong đợi một số mã bạn đã viết ... Vui lòng cập nhật câu hỏi của bạn. – FIL

+1

Bạn đang sử dụng api trên web? Nếu vậy - https://stackoverflow.com/questions/9847564/how-do-i-get-asp-net-web-api-to-return-json-instead-of-xml-using-chrome – Steve

+0

Không tôi có dịch vụ web an toàn @ Steve – SelakaN

Trả lời

0

Xin chào các bạn cuối cùng tôi cũng đã tìm ra câu trả lời để xóa bỏ các không gian tên xml hoặc các không gian tên chuỗi. Giải pháp là sử dụng phương thức ngữ cảnh và viết nội dung trực tiếp lên trình duyệt tự nó. Cho rằng bạn có thể sử dụng mã này.

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

Điều này sẽ ghi dữ liệu thô được tuần tự hóa vào trình duyệt mà không có bất kỳ không gian tên nào. Lưu ý rằng nó không thể được sử dụng trong bối cảnh api an toàn vì điều này có thể khác ở đó.

Các vấn đề liên quan