2014-09-09 2 views
0

GET 메서드 (MCV4/WEB-API/VS 2010)를 사용하고 있습니다.C#에서 모든 문자열을 JSON 형식으로 변환

응답 문자열을 json 형식으로 반환하고 싶습니다.

문자열 (임의의 문자열)을 가지고 있으며이를 json으로 변환하여 응답으로 반환하고 싶습니다.)

어떻게 JSON 형식으로 문자열을 변환 할 수 있습니다

string s = "{\"one\":\"a\", \"two\": \"2\"}"; 
Request.CreateResponse(HttpStatusCode.OK, <what shall i put here in order to return json of string s>); 

내가 이런 일을 할 수 있습니까? :

string s = "{\"one\":\"a\", \"two\": \"2\"}"; 
Request.CreateResponse(HttpStatusCode.OK, s, "application/json"); 

문자열을 변환해야합니다. json이 실제로 긴 문자열을 나타 내기 때문에 나는 무엇이 잘못되었는지 이해하지 못합니다. 그냥 json이라고 불렀습니다.

응답에 "기호가 추가되었습니다. 크롬에 대한 고급 나머지 클라이언트 플러그인에서 소리내어보기 때문에"라는 문구 앞뒤에 기호가 표시되는지 여부는 알 수 없습니다. 그럼에도 불구하고, 나는 통과 문자열, 전후 기호 "로한다.

감사합니다 :) 일반적으로

+0

체크 아웃 [이 유래 포스트] [1 ]. [1] : https://stackoverflow.com/questions/2422983/returning-json-object-from-an-asp-net-page – Unlimited071

답변

2

당신이 웹 API와 특정 형식으로 반환하려는 개체를 변환하지 않습니다. 서버가 반환됩니다 이 내용 협상을 기반으로하는 방법을 알고있는 경우 요구 된 형식의 데이터가. 그래서 함수 서명은 문자열을 반환해야하고, 웹 API는 적절한 XML 또는 JSON으로 변환 처리됩니다.

Web API Content Negotiation를 참조하십시오.

업데이트, 예제 함수 :

public string GetString() 
    { 
    string s="Hello, world!"; 
    return s; 
    } 

또는

public HttpResponseMessage GetString() 
    { 
    string s="Hello, world!"; 
    return Request.CreateResponse(HttpStatusCode.Ok, s); 
    } 

당신이 사전에이 같은 무언가 돌아가려면

:

public Dictionary<string,string> GetDict() 
    { 
    var dict=new Dictionary<string,string>(); 
    dict.Add("one", "a"); 
    dict.Add("two", "2"); 
    return dict; 
    } 

또는

public HttpResponseMessage GetDict() 
    { 
    var dict=new Dictionary<string,string>(); 
    dict.Add("one", "a"); 
    dict.Add("two", "2"); 
    return Request.CreateResponse(HttpStatusCode.Ok, dict); 
    } 
+0

무슨 뜻입니까? 내가해야 할 일은 다음과 같습니다. Request.CreateResponse (HttpStatusCode.OK, 에스); contents-type = application/json을 사용합니까? 그 응답은 null 문자열을 반환합니다. – Eitan

+0

@ Eitan 내 대답이 맞습니까? – mason

+0

mcv4를 web-api로 사용하고 있는데 apicontroller 클래스를 상속받습니다 : public HttpResponseMessage Post ([FromBody] 문자열 값) {s = "..." return Request.CreateResponse (HttpStatusCode.OK, s, "application/json "); 위의 코드는 문자열을 반환합니다 (시작과 끝은 json이 아님). ) – Eitan