码迷,mamicode.com
首页 > 编程语言 > 详细

Mongo中,数组中的string 自动变成数字引起出错

时间:2017-06-16 21:12:32      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:blog   lis   use   调试   序列   写法   数字   val   object   

遇到的问题:

有个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 自动变成数字引起出错

标签:blog   lis   use   调试   序列   写法   数字   val   object   

原文地址:http://www.cnblogs.com/cqupt/p/7029071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!