C#反序列化json字符串时,提示:应为来自命名空间“”的元素“root”。。遇到名称为“”、命名空间为“”的“None”。

反序列化调用接口返回的字符串时,出现:应为来自命名空间“”的元素“root”。。遇到名称为“”、命名空间为“”的“None”。,导致反序列化数据失败,这种失败并有时候并不会直接提示反序列化失败(抛异常),而是把不能正常反序列化的部分丢弃(值为null),查了一下网上的资料,有说是使用反序列化和序列化的版本不一致,也有说是命名空间的问题,我检查了貌似都没问题,实在没办法了,直接先实例化一个,序列化后和接口返回的值做比较。终于找到问题出在哪了。

是因为我自己定义的类的属性命是Keys,二接口返回的这个属性的名字是keys,很相似,如果属性字段多,不认真看,还真看不出来,我定义属性的开头是大写的,二而接口返回的属性的开头是小写的,好坑坑。。。。把属性名改成和接口返回的名字一致,就能够正确解析了。.net对大小写是很敏感的,也怪自己粗细大意了。。。在此备注,希望有碰到类似情况的可以看看是不是也和我的情况是一样的。。。希望有帮助!

在以后做json格式的接口时尽量保证重要的字段(属性)一致,全部大写或小写,方便自己也方便别人。

时间: 2024-10-04 22:12:38

C#反序列化json字符串时,提示:应为来自命名空间“”的元素“root”。。遇到名称为“”、命名空间为“”的“None”。的相关文章

反序列化json串时限定字段不能为空

设计Json Api时,总会遇到将Json字符串转化为Java 对象,然后再处理业务逻辑.但对象中的某些字段我们不希望它们为空,这就需要我们对Java对象的字段进行校验.如果对象中包含多级对象,这样校验起来就非常麻烦. 我使用Google的gson进行json的序列化和反序列化操作,所以就想到gson是否具有这样的过滤机制,查看了好久的api,无奈也没有什么收获,所以就想到自己修改gson代码,增加这样一个功能.实现方式类似gson中的@SerializedName和@Expose等,采用注解实

Newtonsoft.Json.dll 反序列化JSON字符串

上一篇JSON博客<JSON入门级学习小结--JSON数据结构>中已对JSON做了简单介绍,JSON字符串数组数据样式大概是这样子的: 如今因为项目需求(asp.net web网站,前台向后台传递JSON数据,并对JSON数据处理,详述见博客< <项目经验>--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中 >),需要对传递的JSON数据反序列化.于是从网上找了许多JSON反序列化的例子,最终决定使用New

JSON.parse 解析json字符串时,遇换行符报错

今天遇到后台返回的json字符串转对象时报错了,发现有个textarea提交的字段里有换行符. 错误原因:JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示 可以用str.replace(/\n/g,"\\\\n")转义,'\\'转成单个'\','\\n'转成'\n',最后转成'\\n'这样就可以用parse转成对象时变为'\n',取出的字符串设置到html文本中\n被解析为换行. ECMA Script注明json字符串中需要转义的字符: 测试: 1.var

Newtonsoft.Json.4.5.0 序列化与反序列化json字符串使用方法总结

在VS里下载安装: Json.NET 5.0.6 http://www.nuget.org/packages/Newtonsoft.Json/5.0.6 反序列化json字符串为List: json字符串如下: 1 {"docs": [{ 2 "uid": 2629577, 3 "nickname": "枕边疯电台", 4 "is_v": "true", 5 "category

使用javascript的eval函数解析json字符串,提示“not avalible”怎么办?

按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": var jsonString = '{ "firstName": "Brett" } '; 如果这样的简单json字符串使用eval函数是不能解析(在chrome浏览器37.0中测试)的 var a = eval(jsonString); 执行这个语句是系统会提示:“not avalible”; 这样的问题怎么办呢,我们实际中确实需要传输多个参数的值. 解决的办法是将最简单的

请求要素是json字符串时,php如何获取原生请求体

php 常见问题及解决方法 (1)请求要素是json字符串,后台如何获取 //this is a common php library by huangwei , //date:2014-07-03 //see http://blog.sina.com.cn/s/blog_4657e98e0100dyxp.html //see http://www.cnblogs.com/fullhouse/archive/2012/04/24/2468870.html if(array_key_exists(

当返回值为json字符串时 如何获得其中的json数组

json数据格式 {"IPPORT":"192.168.0.12","time":"2017-04-05 09:12:06","oper":"01","data":[{"paramUnit":"℃","name":"1","data":"3 1.7"

删除文件时提示 你需要来自system的权限才能对此文件夹进行更改

问题描述: 我的计算机是Win7 x64操作系统,在我的计算机的F盘中,不知道什么时候多了个“12e4k69m762nzcgt8zx”这样一个文件夹,应该是某个软件自己创建并留下的文件夹,想删除掉则提示“你需要来自system的权限才能对此文件夹进行更改”则无法删除,正好最近打算把C盘格式化重新装Win7 x64的系统,所以也就没在意,心想重装系统后应该就没有什么权限的提示了吧.重装完系统后依然同样的无法删除,还是提示“你需要来自system的权限才能对此文件夹进行更改”,这回算是我没辙了,赶紧

SpringMVC3中返回json字符串时500 Internal Server Error的处理方案

搭建 Spring3+MyBatis+Rest+BootStrap+JBPM项目环境后,测试发现了一个操蛋的问题.使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正常,可是JS获取data报500错误.后台无任何异常信息. 问题解决思路:后台数据操作正常,数据返回前端时候异常,问题集中在Spring的jackson json转换上.而Spring用了第三方的Jackson Json数据转换,异常信息的获取需要靠它,代码中加入如下部分: 1 /** 2 * 查询