1. 程式人生 > >Mongo中,數組中的string 自動變成數字引起出錯

Mongo中,數組中的string 自動變成數字引起出錯

collect value 問題 對象序列化 put convert 成了 mongo 發現

遇到的問題:

有個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 自動變成數字引起出錯