有个bit类型的字段 leaf,存在sql server数据库a表中,我从该表中查询出对象,然后序列化,结果为:
"[{\"id\":\"1\",\"text\":\"职位管理\",\"href\":\"/User/power/positionAdd\",\"iconCls\":\"def\",\"leaf\":\"True\"}]"
原本的bool类型成了string类型,我在前台tree中leaf属性直接调用,tree的节点怎么全成了非叶子节点
我想通过替换
原字符串:string json="[{\"id\":\"11\",\"text\":\"用户\",\"href\":\"\",\"iconCls\":\"def\",\"leaf\":\"False\"}]"
替换语句:json.Replace("\"False\"", "false");
可以没效果,还是原来字符串,一点没改变
有没有别的方法??难道博客园没有用extjs4+net做项目的吗?如果用到tree不知道是怎么解决这个问题的
你是如何序列化为JSON的?
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(obj);
这样
@lippor: obj.leaf是什么类型?
@dudu: 布尔型的
bit对应C#里的 bool, 然后 在序列号的时候 调用的是 bool.ToString() 自然是 True/False .
这里确实是有问题 js里 True 是 true 首字母小写了
可以通过实现JavaScriptConver类来解决
新版的Newtonsoft 没有JavaScriptConver,成了:JsonConvert
我用:Newtonsoft.Json.JsonConvert.SerializeObject(obj);
得到的结果跟原来一样,bool类型成string了