2014-01-27 63 views
6

我使用JsonConvert.SerializeObject()序列化IEnumerbale對象; 它產生字符串引號和逃避用空格如何讓Web Api發送Json.net序列化的字符串對象返回給客戶端正確?

從網絡API控制器字符I返回使用的代碼串下面

[HttpGet] 
public string GetDegreeCodes(int id) 
{ 
    string result = //output from JsonConvert.SerializeObject(); 
    return result; 
} 

「[{\」 DegreeId \ 「:1,\」 DegreeName \ 「:\」High School \「,\」ImageSrc \「:\」 http://bootsnipp.com/apple-touch-icon-114x114-pre \「,\」Description \「:\」 Get High School Degree \ r \「},{\」DegreeId \「:2 ,「DegreeName」:\「Associate \」,\「ImageSrc \」:\「 http://bootsnipp.com/apple-touch-icon-114x114-pre \」,\「Description \」:\「 獲得合作伙伴 Degree \ r \「},{\」DegreeId \「:3,\」DegreeName \「:\」Bachelor \「,\」ImageSrc \「:\」 http://bootsnipp.com/apple-touch-icon-114x114-pre \「,\」Description \ 獲得學士學位 Degree \ r \「},{\」DegreeId \「:4,\」DegreeName \「:\」Masters \「,\」ImageSrc \「:\」 http://bootsnipp.com/apple-touch-icon-114x114-pre \「,\」Description \ :\「 Get Master Degree \ r \」},{\「DegreeId \」:5,\「DegreeName \」:\「Doctrate \」,\「ImageSrc \」:\「 http://bootsnipp.com/apple-touch-icon-114x114-pre \說明\「:\」 獲得博士學位\「}]」

這是我的AJAX,它不能正確識別額外的W的,因爲JSON說唱歌手報價和轉義字符,

$.ajax({ 
     url: "/api/helloservice/getdegreecodes", 
     type: "get", 
     contentType: "application/text", 
     data: { id: 1 } 
    }).done(function (data) { 
     if (data.length > 0) { 

      for (i = 0; i < data.length; i++) { 
       viewEduModel.degreeCodes.push(data[i]); 
      } 

     } 
    }); 

我需要使用JsonConvert.SerializeObject,因爲我在我的Redis緩存服務器使用booksleeve這樣緩存它作爲一個JSON 我不需要 重新序列化和每次從數據庫讀取數據。我如何避免web api控制器發送 行情和反斜槓?我可以簡單地返回IEnumerable和 讓網絡API做的JSON序列化,但我需要 側

回答

13

你可以像下面緩存它的Redis:使用此

[HttpGet] 
public HttpResponseMessage GetDegreeCodes(int id) 
{ 
    StringContent sc = new StringContent("Your JSON content from Redis here"); 
    sc.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 

    HttpResponseMessage resp = new HttpResponseMessage(); 
    resp.Content = sc; 

    return resp; 
} 
+0

你不應該需要做的,只是不連載​​自己的結果。 –

+0

你讀過OP的最後一段了嗎?用戶希望將內容存儲在Redis中作爲Json,因此他不想重新序列化該內容。 –

+0

@KiranChalla謝謝!!!那工作 –

0

,你可以打電話給你webapi通過代碼。

using (var client = new WebClient()) //WebClient 
 
{ 
 
    string mystring = "";    
 
    client.Headers.Add("Content-Type:application/json"); //Content-Type 
 
    client.Headers.Add("Accept:application/json");      
 
    var dataa = Encoding.UTF8.GetBytes("{\"Username\":\"sdfsd\"}");      
 
    byte[] a = client.UploadData("your API url", "POST",dataa);       
 
    myString = Encoding.UTF8.GetString(a); 
 
    
 
    }

相關問題