在C#中将任何字符串转换为JSON格式

时间:2014-09-09 20:35:48

标签: c# json string

我正在使用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;之前和之后的标志。

谢谢:)

1 个答案:

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