2016-05-25 6 views
-3

Ich habe folgenden Code aber seine Rückgabedaten im Zeichenkettentyp. Wie man Daten im json Format zurückbringt.Wie man Daten im JSON-Format zurückgibt seine Rückkehrzeichenkette

[HttpGet] 
     public string Save(BookingInformation BookingJson) 
     { 
    SuccessResponse msg = new SuccessResponse(); 
    msg.FleetBookingId = objMaster.Current.Id.ToString(); 
    msg.Success = true; 
    msg.Message = "Booking saved successfully"; 
    var obj = serializer.Serialize(msg).Trim('"'); 
    return obj; 
} 

Rufmethode

public async void getsave(BookingInformation BookingJson) 
{ 
    var baseAddress = new Uri("http://mycar.com"); 

    string url = "/api/Jobs/SaveBooking"; 

    using (var httpClient = new HttpClient { BaseAddress = baseAddress }) 
    { 
     var Jsonlines = JsonConvert.SerializeObject(BookingJson); 
     //httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept-charset", "utf-8"); 

     //httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "Basic *sample_token*"); 

     using (var content = new StringContent(Jsonlines, System.Text.Encoding.Default, "application/json")) 
     { 
      using (var response = await httpClient.PostAsync(url, content)) 
      { 
       object responseData = await response.Content.ReadAsStringAsync(); 
      } 
     } 
    } 
} 

Ergebnis ist: Wie nur json zurückzukehren. Ich möchte zurückkehren Daten im JSON-Format

"{\"FleetBookingId\":\"36572\",\"Success\":true,\"Message\":\"Booking saved successfully\"}" 

ich so wollen:

{"FleetBookingId":"36572","Success":true,"Message":"Booking saved successfully"} 
+2

Dann nicht zurückgeben 'string' von Ihrer API-Methode, aber eine "SuccessResponse" und lassen Sie den Serializer der API automatisch arbeiten. – CodeCaster

+0

wie man Daten im JSON-Format zurückgibt, weil ich diesen Dienst viele Sprachen verwende .. Python android und php .. –

+0

Welchen Teil meines vorherigen Kommentars hast du nicht verstanden? – CodeCaster

Antwort

2

Sie eine Zeichenfolge aus dem API-Methode nicht zurück, sondern ein SuccessResponse und lassen Sie die API Serializer seine Arbeit tun:

[HttpGet] 
public SuccessResponse Save(BookingInformation BookingJson) 
{ 
    SuccessResponse msg = new SuccessResponse(); 
    msg.FleetBookingId = objMaster.Current.Id.ToString(); 
    msg.Success = true; 
    msg.Message = "Booking saved successfully"; 

    return msg; 
} 
+1

@CodeCaster danke für Verbesserungen in der Antwort :-) Jetzt ist besser. – BWA

0

Return A Json Ergebnis aus Steuer

public ActionResult GetSuggestionFirst() 
    { 
     var search = Request.Params["term"].Trim(); 

     var itemList = (from items in db.TblProductSuggestionFirsts where items.Name.StartsWith(search) select new { label = items.Name, value = items.Name }).Take(50).ToList(); 

     return Json(itemList, JsonRequestBehavior.AllowGet); 
    } 

Diese Rückkehr JSON-Objekt (Json aussehen wie string, analysiert es nur in Javascript)

-1

ich die Antwort danke :) bekam

var content = new JavaScriptSerializer().Serialize(msg); 

JToken json = JObject.Parse(content); 
+1

Es macht keinen Sinn, einen JSON-Roundtrip innerhalb Ihrer Controller-Methode durchzuführen. Sie haben 'msg' genau dort. Was wirst du mit dem 'JToken json' machen? – CodeCaster

+1

@CodeCoster schließlich OP hat das gleiche getan – sumngh

+0

Dank @CodeCaster Ihre Unterstützung, aber ich möchte wirklich Json Daten funktioniert es gut für mich –

Verwandte Themen