首页 > 代码库 > Mongo中,数组中的string 自动变成数字引起出错
Mongo中,数组中的string 自动变成数字引起出错
遇到的问题:
有个Message对象,其中有个字段 叫 UseridList ,类型为 List<string> ,将Message对象序列化后,存入Mongo
var message=new Message(){ UserList=new List<string>(){"02222222222222222222222"} };
var bd = BsonDocument.Parse(JsonConvert.SerializeObject(message));
Task t = collection.InsertOneAsync(bd);
然后将Message读出来
var UseridList = JsonConvert.DeserializeObject<List<string>>(item.GetElement("UseridList").Value.ToString())
在这一句代码出错!!!!错误提示是:input string "02222222222222222222222" is not a valid number
感觉有点莫名其妙,明明转换成string,怎么会有这个提示?
反复调试发现,item.GetElement("UseridList").Value 读出来是mongo 类型的数组,原本的字符串数组,直接变成了数字数组。所以外层再进行json转换时会出错!
那么,可以换一种写法,下面就正确了:
UseridList=JsonConvert.DeserializeObject<List<string>>(item.GetValue("UseridList").ToJson()),
Mongo中,数组中的string 自动变成数字引起出错
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。