c# - 无法获取数据到对象
问题描述
我正在尝试从 mongodb 获取 json 数据,将其放入一个类 objec 中,然后将一个参数打印到控制台,但我收到此错误:
Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: O. Path '_id', line 1, position 10.'
我的 json 看起来像这样:
{ "_id" : ObjectId("5d72b79c58011725b8b31b10"), "length" : NumberLong(957608), "
chunkSize" : 64512, "uploadDate" : ISODate("2019-09-06T19:46:42.058Z"), "md5" :
"3965979118e1302a7d19f609f38ede3e", "filename" : "C:\\Users\\kbu\\Downloads\\hve
m-er-vi.jpg", "metadata" : { "Beloeb" : "", "Overskrift" : "", "Gruppe" : "", "B
eskrivelse" : "", "Dato" : "6. september 2019", "Afsender" : "Lars" } }
我怀疑,这与我的班级有关,但我不知道是什么。
这是我的代码:
class Program
{
static void Main(string[] args)
{
var client = new MongoClient("mongodb+srv://*********:*********@kbucluster-oslh9.mongodb.net/test?retryWrites=true&w=majority");
var database = client.GetDatabase("test");
var collec = database.GetCollection<BsonDocument>("fs.files");
var filter = Builders<BsonDocument>.Filter.Empty;
var result = collec.Find(filter).ToList();
foreach(var doc in result)
{
Console.WriteLine(doc.ToJson());
RootObject bilag = JsonConvert.DeserializeObject<RootObject>(doc.ToJson());
Console.WriteLine(bilag.ID);
}
Console.ReadKey();
}
}
public class Metadata
{
public string Beloeb { get; set; }
public string Overskrift { get; set; }
public string Gruppe { get; set; }
public string Beskrivelse { get; set; }
public string Dato { get; set; }
public string Afsender { get; set; }
}
public class RootObject
{
public string ID { get; set; }
public string Length { get; set; }
public string ChunkSize { get; set; }
public string UploadDate { get; set; }
public string MD5 { get; set; }
public string Filename { get; set; }
public Metadata Metadata { get; set; }
}
}
解决方案
您可以使用以下方法
object dotnetObject = BsonTypeMapper.MapToDotNetValue(bsonDocument);
// Json mapped to default .Net objects
string json = Newtonsoft.Json.JsonConvert.SerializeObject(dotnetObject);
// Parsing as JObject
var jobject = JObject.Parse(json);
// Deserializing as your custom Type
var myObject = JsonConvert.DeserializeObject<MyType>(json);
推荐阅读
- python - 标签在蝗虫中没有响应
- android-edittext - Android Studio:如何将 EditText 字段与 Java 代码连接,以便 Java 导入数字并将其用于方法
- java - Java Swing 渲染问题(空白空间和双重渲染)
- google-api - 使用 Nodejs 使用 Passport 的 Google 身份验证代表用户上传 YouTube 视频
- kotlin - Kotlin 倒计时如何做 分钟:秒:毫秒
- python - 从 sklearn.linear_model 导入线性回归
- spring-boot - Spring Security 和端口转发
- python - 向 PySpark 数据框添加多列
- java - 如何在 Freemarker 模板中标记复选框
- vue.js - Vue2 应用程序使用 Axios 从 api 获取信息在部署到 Heroku 时不起作用,应用程序发送不正确的 url