Return 默认 jSon 数据 属性
Return Default jSon Data With Property
我正在将数据从数据库转换为 jSon,如下所示 ASP.NET Web Api
:
public string GetData(string userId)
{
var settings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver()
};
string Query = "select USER_ID UserId, USER_NAME UserName from Table where USER_ID = '" + userId + "'";
DataTable dt = SelectData(Query);
string jSonResult;
jSonResult = JsonConvert.SerializeObject(dt, settings);
return jSonResult;
}
在项目的 web api 配置文件中,它具有以下设置:
public static void Register(HttpConfiguration config)
{
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "GET, POST");
config.EnableCors(cors);
//Web api routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
}
它 return 给我预期的 jSon 数据,但问题是数据 returned 属性变成大写如下:
[
{
"USERID": "1002",
"USERNAME": "John"
}
]
虽然我使用格式化程序将其保留为默认设置,但它 return 就是上面的内容。我可以通过任何方式 return 如下属性:
[
{
"UserId": "1002",
"UserName": "John"
}
]
在JsonSerializerSettings
替换ContractResolver = new DefaultContractResolver()
进入
ContractResolver = new CamelCasePropertyNamesContractResolver()
例如
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
public static string GetData(string userId)
{
DataTable dt = new DataTable();
dt.Columns.Add("UserID", typeof(int));
dt.Columns.Add("UserName", typeof(string));
//Some dummy data
dt.Rows.Add(1, "Townsend");
dt.Rows.Add(2, "Marget");
dt.Rows.Add(3, "Deva");
dt.Rows.Add(4, "Aurthur");
var settings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver()
};
string jSonResult;
jSonResult = JsonConvert.SerializeObject(dt);
return jSonResult;
}
会return下面的结果
[
{
"UserID": 1,
"UserName": "Townsend"
},
{
"UserID": 2,
"UserName": "Marget"
},
{
"UserID": 3,
"UserName": "Deva"
},
{
"UserID": 4,
"UserName": "Aurthur"
}
]
我正在将数据从数据库转换为 jSon,如下所示 ASP.NET Web Api
:
public string GetData(string userId)
{
var settings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver()
};
string Query = "select USER_ID UserId, USER_NAME UserName from Table where USER_ID = '" + userId + "'";
DataTable dt = SelectData(Query);
string jSonResult;
jSonResult = JsonConvert.SerializeObject(dt, settings);
return jSonResult;
}
在项目的 web api 配置文件中,它具有以下设置:
public static void Register(HttpConfiguration config)
{
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "GET, POST");
config.EnableCors(cors);
//Web api routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
}
它 return 给我预期的 jSon 数据,但问题是数据 returned 属性变成大写如下:
[
{
"USERID": "1002",
"USERNAME": "John"
}
]
虽然我使用格式化程序将其保留为默认设置,但它 return 就是上面的内容。我可以通过任何方式 return 如下属性:
[
{
"UserId": "1002",
"UserName": "John"
}
]
在JsonSerializerSettings
替换ContractResolver = new DefaultContractResolver()
进入
ContractResolver = new CamelCasePropertyNamesContractResolver()
例如
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
public static string GetData(string userId)
{
DataTable dt = new DataTable();
dt.Columns.Add("UserID", typeof(int));
dt.Columns.Add("UserName", typeof(string));
//Some dummy data
dt.Rows.Add(1, "Townsend");
dt.Rows.Add(2, "Marget");
dt.Rows.Add(3, "Deva");
dt.Rows.Add(4, "Aurthur");
var settings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver()
};
string jSonResult;
jSonResult = JsonConvert.SerializeObject(dt);
return jSonResult;
}
会return下面的结果
[
{
"UserID": 1,
"UserName": "Townsend"
},
{
"UserID": 2,
"UserName": "Marget"
},
{
"UserID": 3,
"UserName": "Deva"
},
{
"UserID": 4,
"UserName": "Aurthur"
}
]