我正在使用GET方法(MCV4 / WEB-API / VS 2010)。
我想以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实际上代表了一个很长的字符串 - 它只是叫做json。
我不知道回复是否会增加&#34;签名,因为我正在为Chrome的高级休息客户端插件做好准备,我看到&#34;字符串前后的符号。尽管如此,字符串I通过,应与&#34;之前和之后的标志。
谢谢:)
答案 0 :(得分:2)
通常,您不会将计划返回的对象转换为使用Web API的特定格式。如果服务器根据内容协商知道如何,则将以请求的格式返回数据。因此,您的函数签名应返回一个字符串,Web 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);
}