首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将linq查询转换为只包含值的JavaScript数组?

如何将linq查询转换为只包含值的JavaScript数组?
EN

Stack Overflow用户
提问于 2022-03-01 22:22:27
回答 2查看 194关注 0票数 0

我有一个JavaScript网格库(它在页面上创建一个表),它接受JavaScript数组作为输入,以便在网格中呈现。但是,我不确定如何将Linq到SQL查询(针对Server数据库)转换为只包含值的JavaScript数组。

我尝试过这样做,但是它在JSON键中包含了表列名(而且我也不想要JSON,我想要一个JavaScript字符串数组,除非可以转换为数组?):

代码语言:javascript
复制
JsonConvert.SerializeObject(query)

我需要生成的格式示例:

代码语言:javascript
复制
[1,2,3],[4,5,6]

环境:.NET Core3.1

编辑:下面是我目前得到的一个示例,它返回了不太理想的JSON (由于查询结果太大,使用一个用于size元素的JSON键将几乎是查询大小的两倍):

器件表

代码语言:javascript
复制
ID   Name
1    iPhone7
2    iPhone8
3    iPhone9

需要数组(注:没有列名)

代码语言:javascript
复制
[1, "iPhone7"],[2, "iPhone8"],[3, "iPhone9"]

控制器方法中的当前C#代码(当前每个元素返回不需要的密钥)

代码语言:javascript
复制
var query = db.Devices;
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-02 00:10:01

从技术上讲,你可以这样做:

代码语言:javascript
复制
var query = db.Devices.AsEnumerable()
    .Select(d => new object[]{d.ID, d.Name});
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);

但是,请求另一端的代码将不得不将所有这些数组转换回对象。

为了优化网络流量的大小,像这样使您的模型复杂化是很不值得的。如果您正在从线路上提取足够多的项,使其成为性能问题,则可能会遇到各种其他性能问题。我首先考虑其他选项,比如实现分页。

票数 0
EN

Stack Overflow用户

发布于 2022-03-02 00:01:27

你试过了吗

代码语言:javascript
复制
var query = db.Devices.ToList(); 
var array = JArray.FromObject(query);
return Ok(formattedResult)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71315293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档