2016-05-25 2 views
-3

У меня есть следующий код, но его возвращаемые данные в строковом типе .. как вернуть данные в формате json.Как вернуть данные в формате json с его возвращаемой строкой

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

Вызов метода

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

Результат: как вернуть только JSON. Я хочу, чтобы вернуть данные в формате JSON

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

я хочу, как это:

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

Тогда не возвращают 'string' из метода API, а 'SuccessResponse', и пусть сериализатор API выполняет свою работу автоматически. – CodeCaster

+0

как вернуть данные в json формате, потому что я использую эту службу на многих языках .. python android и php .. –

+0

Какая часть моего предыдущего комментария вы не поняли? – CodeCaster

ответ

2

Не возвращает строку из метода API, но SuccessResponse и пусть сериализатору в API, делать свою работу:

[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 спасибо за улучшения в ответе :-) Теперь лучше. – BWA

0

возвращающие Json Результат от контроллера

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

Это возвращение JSON объект (Json выглядеть как строки, просто разобрать его в Javascript)

-1

я получил ответ спасибо :)

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

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

Не имеет смысла делать JSON roundtrip в вашем методе контроллера. У вас есть 'msg' прямо там. Что вы собираетесь делать с JToken json? – CodeCaster

+1

@CodeCoster наконец-то сделал то же самое – sumngh

+0

Спасибо @CodeCaster за вашу поддержку, но я действительно хочу, чтобы данные json работали нормально для меня –

Смежные вопросы