c# - 创建从 linq 到 SQL 查询输出的特定 json 响应?
问题描述
我正在研究 Web API。我正在从一个数据库表中获取数据:
DispatchData dta = new DispatchData();
using (SalesDataContext oSqlData4 = new SalesDataContext())
{
var result = (from x in oSqlData4.Finances
where (x.records.ID.Equals("12") ||
x.records.ID.Equals("123"))
where (x.Status == "Not Approved")
select x).ToList();
foreach (var item in result)
{
dta.data = new string[] { item.Order_ID.ToString(), item.ID.ToString() };
}
var json = JsonConvert.SerializeObject(dta);
return json;
}
public class DispatchData
{
public string[] data;
}
此代码仅返回一条记录:
{ "data": ["2508", "4684"] }
我想要这样的数组中的每一行
{"data":[ ["2508","4684"],["2223","1123"],....] }
解决方案
对于您想要的结果,您的类定义错误
public class DispatchData
{
public string[][] data;
}
然后可以直接在一个数组中选择这对ID,然后嵌套在另一个数组中,直接赋值给dta.data
using (SalesDataContext oSqlData4 = new SalesDataContext())
{
var dta = new DispatchData() {
data = (from x in oSqlData4.Finances
where (x.records.ID.Equals("12") ||
x.records.ID.Equals("123"))
where (x.Status == "Not Approved")
select new[]{ x.Order_ID.ToString(), item.ID.ToString() }
).ToArray()
};
var json = JsonConvert.SerializeObject(dta);
return json;
}
推荐阅读
- mysql - 如何让 SQL 获取以“P”开头并后跟“11”数字的 ID
- docker - Docker Pull Access Denied for Repository 不存在或需要登录
- git - 将多个文件版本导入 git 的任何工具?
- python - 使用 Azure 函数 HTTP 触发器的 mTLS?
- python - 计算之前出现的单词数
- javascript - 在 WebStorm 中绑定到 [attr.for] 和 [id] 时缺少关联的标签错误
- graphql - 如何使用 Shopify Storefront API 和 GraphQL 查询产品价格
- google-cloud-platform - gsutil 说它找不到 python
- c++ - Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?
- swiftui - 动态设置 SwiftUI NavigationBarItems?