-3

I have following code but its return data in string type.. how to return data in json format.

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

Calling Method

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

Result is : how to return only json. I want return data in json format

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

i want like this :

{"FleetBookingId":"36572","Success":true,"Message":"Booking saved successfully"}
Adeel Khan
  • 185
  • 5
  • 15

3 Answers3

2

Don't return a string from your API method, but a SuccessResponse and let the API's serializer do its work:

[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;
}
CodeCaster
  • 147,647
  • 23
  • 218
  • 272
BWA
  • 5,672
  • 7
  • 34
  • 45
0

Return A Json Result from Controller

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

This return json object (Json look like string, just parse it in Javascript)

Arun Prasad E S
  • 9,489
  • 8
  • 74
  • 87
-1

I got the answer thanks :)

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

JToken json = JObject.Parse(content);
I.G. Pascual
  • 5,818
  • 5
  • 42
  • 58
Adeel Khan
  • 185
  • 5
  • 15