2012-07-12 37 views
7

Buổi sáng,Cách trả lại JSON từ webservice

Tôi cần trả lại tin nhắn từ dịch vụ web của mình. Dưới đây là một mẫu mã của tôi, và tôi đang trả về một chuỗi.

[web method] 
public string CheckFeedSubmission() 
    { 
     string responseText = ""; 
     try 
     { 
      //Stuff goes here 
      responseText = "It Worked!" 
     } 
     catch (Exception ex) { responseText = "Opps wehave an error! Exception message:" + ex.Message; } 
     return responseText ; 
    } 

Tôi hiện có được câu trả lời sau đây ...

<string xmlns="http://tempuri.org/"/> 

Tôi lý tưởng muốn trả lại một cái gì đó giống như

{"success" : true, "message" : "***Message Here***"} 

Tôi chắc chắn một lần tôi nhận được những ý tưởng của nó, i sẽ có thể trả lại các mặt hàng khác nếu cần. Chỉ có cơ sở này tôi cần phải làm việc ra.

Tất cả giúp đỡ được nhiều đánh giá, cảm ơn trước :)

UPDATE: Chỉ cần thấy điều này ...

return "{Message:'hello world'}" 

tôi sẽ cần một cái gì đó giống như

responseText = "{"success" : true, "message" : \"There has been an error. Message: " + ex.Message + "\"}" 
+0

thể trùng lặp của [dịch vụ web sẽ trả về json] (http://stackoverflow.com/questions/8205081/web -service-should-return-json) –

Trả lời

10

Sử dụng:

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//Specify return format. 
public string CheckFeedSubmission() 
    { 
     string responseText = ""; 
     try 
     { 
      //Stuff goes here 
      responseText = "It Worked!" 
     } 
     catch (Exception ex) { responseText = "Opps wehave an error! Exception message:" + ex.Message; } 
     return responseText ; 
    } 

Các kết quả trả về sẽ như thế nào:

<string xmlns="http://tempuri.org/"/> 
{"success" : true, "message" : "***Message Here***"} 
</string> 
+2

Cảm ơn, nhưng như trên tôi vẫn nhận được chuỗi XML trở lại – thatuxguy

+0

Thực ra nó trả về Json bên trong XML. Bạn cần chỉ định trong cuộc gọi của mình những gì bạn muốn trả lại. Tại sao lại trả về định dạng? http://haacked.com/archive/2009/06/25/json-hijacking.aspx –

+0

điều gì về "nó hoạt động!" tin nhắn phản hồi? – thatuxguy

2

Vui lòng sử dụng các thuộc tính cho WebMethod của bạn

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 

Người gọi sẽ đã thiết contentType của mình để application/json sử dụng WebMethod

+3

không hoạt động, vẫn chỉ nhận được chuỗi trở lại - Đã hoạt động ổn định thatuxguy

0

Hãy thử cái này:

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//Specify return format. 
public bool addUser(UserModel um) 
    { 
     bool result = false; 
     result = Conversion.intToBool(SplashAwardsDB.executeNonQuery(
      "INSERT INTO dbo.User (" 
      + "userName, password, firstName, lastName, address, contactNo, birthDate, familyID, familyRole, x, y) " 
      + " VALUES (" 
      + "'" + um.userName + "', " 
      + "'" + um.password + "', " 
      + "'" + um.firstName + "', " 
      + "'" + um.lastName + "', " 
      + "'" + um.address + "', " 
      + "'" + um.contactNo + "', " 
      + "'" + um.birthDate + "', " 
      + "'" + um.familyID + "', " 
      + "'" + um.familyRole + "', " 
      + "'" + um.x + "', " 
      + "'" + um.y + "')" 
      )); 
     return result; 
    } 
Các vấn đề liên quan