问题描述
所以我正在从文件中读取一些参数,并将它们设置为模型的列表,就像这样
List<UploadModel> results = new List<UploadModel>();
using (var dbfDataReader = new DbfDataReader.DbfDataReader(dbfPath,options))
{
while (dbfDataReader.Read())
{
UploadModel nga = new UploadModel();
nga.OPERATOR_OBJECTID = dbfDataReader.GetInt32(0);
nga.SETTLEMENT_CODE = dbfDataReader.GetString(1);
nga.TECHNOLOGY_CODE = dbfDataReader.GetString(2);
nga.UPLOAD_SPEED_CLASS_CODE = dbfDataReader.GetString(3);
nga.DOWNLOAD_SPEED_CLASS_CODE = dbfDataReader.GetString(4);
nga.DATA_CATEGORY_QOS_CODE = dbfDataReader.GetString(5);
nga.SHAPE = dbfDataReader.GetString(6);
nga.SHAPE = "polyGON ((" + nga.SHAPE + "))";
results.Add(nga);
}
};
string json = Newtonsoft.Json.JsonConvert.SerializeObject(results,Newtonsoft.Json.Formatting.Indented);
但是,如果我上传多行文件,则无法将模型列表序列化为json。
我尝试过类似string [] json
的操作,但遇到了cannot convert type string to string[]
我也尝试过List<UploadModel> models = JsonConvert.SerializeObject...
,但这也行不通。
我有列表,我只是不知道如何正确地序列化它。有指针吗? :)
解决方法
这将正确地将其序列化-到一个字符串中的对象列表...即json将为:
[ { // object 1 },{ //object 2 } ]
您可以通过
将其恢复var list = JsonConvert.Deserialize<IEnumerable<UploadModel>>(json);
如果需要列表,则可以为每个序列化对象一个字符串:
var allObjectsJsons = new List<String>();
// In your loop
while (reader.Read()){
UploadModel nga = new UploadModel();
nga.OPERATOR_OBJECTID = dbfDataReader.GetInt32(0);
... etc
var oneObjectJson = JsonConvert.Seriailize(nga);
allObjectsJsons.Add(oneObjectJson);
}