今天碰到个有趣的问题,要输出带点的json,求大牛解答一下

非专业开发Five 2018-09-29 04:58:17
webapi中怎么实现下面这种json:

{"pager.pageNo":2,"pager.totalRows":23,"rows":[
{"orgName":"财务部","userEducation":"专科","userEmployTime":"2012-09-11","userId":18,"userLoginName":"yang","userName":"小杨","userPassword":"123456","userSex":"女"},
{"orgName":"工程部","userEducation":"专科","userEmployTime":null,"userId":17,"userLoginName":"han","userName":"小韩","userPassword":"123456","userSex":"女"},
{"orgName":"行政部","userEducation":"专科","userEmployTime":"2012-09-04","userId":16,"userLoginName":"fuzeren","userName":"行政部负责人","userPassword":"123456","userSex":"男"},
{"orgName":"财务部","userEducation":"专科","userEmployTime":"2012-09-04","userId":15,"userLoginName":"zhuguan","userName":"财务部主管","userPassword":"123456","userSex":"女"},
{"orgName":"市场部","userEducation":"专科","userEmployTime":"2012-09-12","userId":14,"userLoginName":"jingli","userName":"市场部经理","userPassword":"123456","userSex":"男"}
]}


我转了好几个圈,比如webapi没法序列化hashtable,自定义类型没法定义带.的变量名等等问题,绕了一个下午,求解一下大家有没有快速解决方案。
...全文
758 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
[quote=引用 楼主 xomix 的回复:]自定义类型没法定义带.的变量名等等问题


"自定义的字典“是完全可以定义带点的key的,例如
var x = new ExpandoObject();
var y = (IDictionary<string, object>)x;
y.Add("pager.pageNo", 2);
y["pager.pageNo"] = 24;
[/quote]
字典变量无法直接输出webapi。

引用 7 楼 xuzuning 的回复:
"pager.pageNo" 只不过是一个名字而已
你又不可能在反序列化后用 obj.pager.pageNo 这样访问,而只能是 obj["pager.pageNo"]
所以这种奇技淫巧还是少用点好

前端框架有这种需求…………我当然知道后台用不着这样。



说到底只是一个前端的需求决定了我需要这个功能,2楼完美解答问题。结帖
xuzuning 2018-10-03
  • 打赏
  • 举报
回复
"pager.pageNo" 只不过是一个名字而已
你又不可能在反序列化后用 obj.pager.pageNo 这样访问,而只能是 obj["pager.pageNo"]
所以这种奇技淫巧还是少用点好
  • 打赏
  • 举报
回复
.net 有现成的定义这类字典的方式,只是你还没有学好 .net 基本类型。
  • 打赏
  • 举报
回复
引用 楼主 xomix 的回复:
自定义类型没法定义带.的变量名等等问题
"自定义的字典“是完全可以定义带点的key的,例如
var x = new ExpandoObject();
var y = (IDictionary<string, object>)x;
y.Add("pager.pageNo", 2);
y["pager.pageNo"] = 24;
  • 打赏
  • 举报
回复
Json的非泛型的反序列化也可以,返回的dynamic obj
MikeCheers 2018-09-29
  • 打赏
  • 举报
回复
可以使用Newtonsoft.Json

也可以自己override 对象的ToString()方法来得到自己想要的格式

Json,一种格式罢了。
thiefx 2018-09-29
  • 打赏
  • 举报
回复

[JsonProperty("Page.No")]
public string PageNo{get;set;}
正怒月神 2018-09-29
  • 打赏
  • 举报
回复
引用 1 楼 thiefx 的回复:

[JsonProperty("Page.No")]
public string PageNo{get;set;}
正解

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧