我将JSON文件反序列化为实体类。为了简化,让我们假设这些是我的类
public class Result{
...
public List<Sens> senses { get; set; }
}
public class Sens{
...
public Object definition { get; set; }
}在将JSON反序列化为结果对象之后,我将其插入到数据库中。没有错误,我可以插入没有冲突的结果和感觉。但是,当我像这样使用LINQ查询从数据库中调用结果时,我得到了结果对象,但是我的感官为空。问题1为什么以及如何解决它?
var results =(from r in db.Results
where r.headword == Id
select r).ToList();我试着增加我的感官来得到这样的结果
foreach (Result item in resultmodel.Results)
{
item.senses = (from s in db.Senses
join r in db.Results on s.res equals r
where r.Id_ == item.Id_
select s).ToList();
}我可以补充,但是当我试图从我的观点展示感官时,我得到了
System.Collections.Generic.List`1System.String
但是我在等待,这将是一个字符串问题2,,我的方法有什么问题。
发布于 2019-02-25 17:17:59
如果将JSON字符串转换为c#对象,就不会有问题。但作为回报,您希望将字符串映射到对象。那是什么东西?这些财产是什么?C#对此一无所知。
在我的一个项目中,我在从Redis服务器进行读写时遇到了类似的问题。我在序列化对象时添加了类型定义,并使用这些类型进行反序列化。
序列化:
var jsonString = JsonConvert.SerializeObject(item, _settings);
return Encoding.UTF8.GetBytes(jsonString);反序列化:
JsonConvert.DeserializeObject<T>(jsonString, _settings);设置:
private static readonly JsonSerializerSettings _settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
Formatting = Formatting.None,
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore
}我希望这能帮到你。
https://stackoverflow.com/questions/54853968
复制相似问题