c# - 从 C# 返回带有数字键的列表

标签 c# json entity-framework

我的代码如下:

var aaData = 
    ctx.PaymentRates
        .Where(x => x.ServiceRateCodeId == new Guid("BBCE42CB-56E3-4848-B396-4656CCE3CE96"))
        .Select(x => new 
        {
            Id = x.Id
        }).ToList();

它在使用 Json(aaData); 转换时生成以下 JSON:

"aaData":[
    {"Id":"ab57fc9d-ffb7-4a12-8c5c-03f36b4ef1fe"},
    {"Id":"4c1e9776-5d64-4054-a9c9-0fc8b8b8e8a1"}
    etc.
]

但是,我想在值之前返回键,像这样:

"aaData":[
    [0] => {"Id":"ab57fc9d-ffb7-4a12-8c5c-03f36b4ef1fe"},
    [1] => {"Id":"4c1e9776-5d64-4054-a9c9-0fc8b8b8e8a1"}
    etc.
]

编辑:我不确定正确的语法 - 重点是,我只想要数字键。

我如何在 C# 中执行此操作?

最佳答案

JSON 使用隐式 索引——这意味着数组中元素的顺序被保留,因此您可以在检索元素时从元素的顺序推断出“索引” .

如果您需要包含一个“索引”元素,您必须将其作为数组元素的属性:

var aaData = 
    ctx.PaymentRates
        .Where(x => x.ServiceRateCodeId == new Guid("BBCE42CB-56E3-4848-B396-4656CCE3CE96"))
        .Select((x, i) => new 
        {
            Index = i,
            Id = x.Id
        }).ToList();

您的 JSON 应该类似于:

"aaData":[
    {"Index":"0", "Id":"ab57fc9d-ffb7-4a12-8c5c-03f36b4ef1fe"},
    {"Index":"1", "Id":"4c1e9776-5d64-4054-a9c9-0fc8b8b8e8a1"}
    etc.
]

关于c# - 从 C# 返回带有数字键的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391740/

相关文章:

c# - 使用 asp.net 成员(member)资格有哪些优点和缺点?

c# - NHibernate BasicSample 与 Nhibernate 3.3

java - 解析有效 Json 时出现 JSONException

java - 在启动屏幕上获取数据

asp.net-mvc - virtual 关键字、Include 扩展方法、延迟加载、预先加载——加载相关对象实际上是如何工作的

asp.net - 错误 : EntitySet 'Building' that was specified in page markup does not exist on the Container

c# - ToString() 和转换为字符串的区别

c# - 如何在 C# 中编写用户定义的异常?

java - Android解析Json给出空字符串

c# - 多对多(自相关)特定订单 Entity Framework