C#.net中的Json对象

C#.net中的Json对象,c#,asp.net,json,object,json.net,C#,Asp.net,Json,Object,Json.net,我有一个C#.net方法,如下所示 public string jsonTest() { List<string> list = new List<string>(); list.Add("aa"); list.Add("bb"); list.Add("cc"); string output = JsonConvert.Serializ

我有一个C#.net方法,如下所示

 public string jsonTest()
        {
            List<string> list = new List<string>();
            list.Add("aa");
            list.Add("bb");
            list.Add("cc");
            string output = JsonConvert.SerializeObject(list);
            return output;          
        }
是否可以在asp.net中创建Json数据

在客户端,我使用ajax调用从jsonTest()获取数据


当我给出数据类型:“json”时,它将转到错误部分(因为ajax需要json数据,但它得到字符串)。这就是为什么我想在服务器端将其解析为json对象。

json只是字符串数据。这就是字符串的解释方式。因此,它返回字符串的事实是正确的。你提到了ASP.Net。您是否正在使用ASP.Net webforms并寻找将JSON返回到前端的方法?

没有所谓的JSON对象。
SerializeObject
方法返回一个字符串,因为JSON只不过是一个遵循特定规则的字符串值

要将JSON返回到浏览器,只需执行以下操作:

Response.ContentType = "application/json; charset=utf-8";
Response.Write(jsonTest());
Response.End();
如果是ASP.NET

string output = JsonConvert.SerializeObject(list);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(output);
Response.End();

我假设您正试图创建一个
WebMethod
,供JavaScript XHR调用或类似调用使用:

ASP.NET将仅为
POST
请求自动序列化为JSON(使用ASMX或所谓的“页面方法”)。WCF和WebAPI不需要
POST
方法,但需要一些配置

[WebMethod]
public static List<Task> TasksGet(string projectId) {
    return MyNamespace.Tasks.GetForProject(projectId);
}
无需直接与JsonSerializer类混在一起

还要确保您的请求标题设置正确:


Content-Accept:application/json;charset=UTF8

您希望服务器端使用还是客户端使用它?您试图对结果做什么?如果您正在谈论创建asp webmethod,您将返回字符串类型并使用Json序列化程序转换对象,这应该是一个webmethod?如果是这样的话,只需将返回类型设置为
List
,它就会自动序列化为JSON(不是转义的“JSON字符串”),我想你可以说一个注释,如果我没有在ajax中使用数据类型:“JSON”,它就可以正常工作。否则显示警报(“错误”);
string output = JsonConvert.SerializeObject(list);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(output);
Response.End();
[WebMethod]
public static List<Task> TasksGet(string projectId) {
    return MyNamespace.Tasks.GetForProject(projectId);
}
{"d": [{
     "__type": "MyNamespace.Task", 
     "id": 1, 
     "description": "This is my first task"
   }, {
     "__type": "MyNamespace.Task", 
     "id": 2, 
     "description": "This is my second task"
   }, {
     ....etc etc
   }
]}