json字符串转换成对象问题

kingboyrang 2013-07-16 09:02:19
转换方法:

private T JsonToObject<T>(string jsonStr)
{

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr));
T jsonObject = (T)ser.ReadObject(ms);
ms.Close();
return jsonObject;
}


使用DataContractJsonSerializer不能将bool值正常转换,明明是false值,转换成变为了true,
求大神解决方案,不使用第三方的组件netjson是否可以处理
...全文
181 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingboyrang 2013-07-16
  • 打赏
  • 举报
回复
引用 1 楼 findcaiyzh 的回复:
你提供的信息太少,没法分析, 我写的小测试程序没有问题:

       private void Form1_Load(object sender, EventArgs e)
        {
            string jsonString1 = @"{""Description"":""this is a test"",""Enable"":""false"",""Title"":""test""}";

            TestClass t1 = JsonToObject<TestClass>(jsonString1);
        }

        private T JsonToObject<T>(string jsonStr)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr));
            T jsonObject = (T)ser.ReadObject(ms);
            ms.Close();
            return jsonObject;
        }
TestClass的定义:

    public class TestClass
    {
        public string Title { get; set; }
        public string Description { get; set; }
        public bool Enable { get; set; }
    }
撞邪了,我現在測試也沒有錯,而在我的項目里面測試,有時錯,有時沒有錯。。。我了個去~~~
宝_爸 2013-07-16
  • 打赏
  • 举报
回复
你提供的信息太少,没法分析, 我写的小测试程序没有问题:

       private void Form1_Load(object sender, EventArgs e)
        {
            string jsonString1 = @"{""Description"":""this is a test"",""Enable"":""false"",""Title"":""test""}";

            TestClass t1 = JsonToObject<TestClass>(jsonString1);
        }

        private T JsonToObject<T>(string jsonStr)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr));
            T jsonObject = (T)ser.ReadObject(ms);
            ms.Close();
            return jsonObject;
        }
TestClass的定义:

    public class TestClass
    {
        public string Title { get; set; }
        public string Description { get; set; }
        public bool Enable { get; set; }
    }

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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