c# - Json 从实体返回额外的值

标签 c# json json.net

我正在使用 json .net 对通用列表进行序列化,但是当我只需要我的字段名称和值时,它会在我的 json 响应中带回额外的数据。我尝试使用下面的 JSONConvert 简单语法,但我想我将不得不根据从 myList 返回的值创建一个新的结果变量。

public string GetListByUserId(int userId)
{

        List<curoList> myList = _db.GetAllListsByUserId(userId);

        var json = JsonConvert.SerializeObject(myList);

        return json;

}

在数据中,它包括 EntitySetName 之类的东西,而我只是希望字段类似于 fieldname:fieldvalue,这引出了我对 json.net 的第二个问题,如何将数据转换为 List 对象

编辑

我忘了包含你们的测试数据。

[{"$id":"1","id":1,"firstName":"David","lastName":"Buckley","address1":"","address2":null,"county":null,"postcode":null,"emailaddress":null,"aboutme":null,"active":true,"EntityKey":{"$id":"2","EntitySetName":"persons","EntityContainerName":"curoEntities","EntityKeyValues":[{"Key":"id","Type":"System.Int32","Value":"1"}]}}]

开始 2 这是为了展示我是如何创建我的数据的

public List<person> GetPersonByIdDal(int personId)
{
        List<person> list = new List<person>();

        try
        {
            list = (from myPersons in curoEntities.persons where myPersons.id == personId && myPersons.active==true select myPersons).ToList();
        }
        catch (Exception ex)
        {
            throw new EntityContextException("GetPersonById where active = true failed.", ex);
        }

        return list;
}

最佳答案

实体键可能来自您的 ORM。你在使用 Entity Framework 吗?您可以使用忽略,也可以执行类似

的操作
var myList = _db.GetAllListsByUserId(userId).Select(x=> new SomeDto{ prop1 = x.prop1 ... }).toList(); 

public class SomeDto{
    public string prop1 {get;set;}
}

这将为您提供一个仅包含您定义的内容的 List 对象,只要您不希望整个结果集都在其中,它也会使查询更快。

如果您使用的是 Entity Framework ,您的数据库上下文也可以在数据库上下文设置中进行配置,其中可以关闭诸如代理创建之类的东西。在全局范围内这样做要小心,因为它可能会扰乱您的更新跟踪。

关于c# - Json 从实体返回额外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192689/

相关文章:

c# - 如何使用 JSON.NET 在 C# 中序列化 PSObjects?

c# - Android 10 Xamarin.Forms MainActivity 作为警报的全屏 Intent

c# - Switch Cell 代码中的 Xamarin.Forms DataBinding

c# - 在运行时 ASP.NET 中更改按钮/标签的位置,同时将其放在鼠标光标中 "WebForms"

c# - 如何使用 C# 创建我的 json 字符串?

javascript - 如何使用nodejs更新dynamoDB中的项目?

c# - 如何更改嵌套 json 结构中的键值对 C#

c# - 如何确定一个 JSON 对象是否只包含一个特定的键?

c# - 在 LINQ to SQL 中执行查询

java - 将对象修改合并到 java 对象 (JSON)