将通用列表转换为json格式 [英] Convert generic list to json format
问题描述
嗨大家好,任何人都可以帮我实现这样的输出。我无法像下面那样设置数组头。建议我最好的方法和解决方案样本来源
我的代码:
var groupedCustomerList = _commonService.GetMultilingualDatas(语言)
.GroupBy(u => u.screen_name)
.Select(grp => grp.ToList())
.ToList();
string output = Newtonsoft.Json.JsonConvert.SerializeObject(groupedCustomerList);
我得到的实际结果:
[
[
{
multilingual_id:1,
screen_name:splash_screen,
key:care_any_ware,
max_length:0,
value:随时随地,
评论:,
语言:en-gb
}
],
[
{
multilingual_id:2,
screen_name:login_start,
key:log_in ,
max_length:0,
value:登录,
评论:,
语言:en-gb
},
{
multilingual_id:3,
screen_name:login_start,
key:join_today,
max_length :0,
value:今天加入,
评论:,
语言:en-gb
},
{
multilingual_id:4,
screen_name:login_start,
key:take_a_quick_tour,
max_length:0,
value:快速浏览,
评论:,
语言:en-gb
}
],
预期结果:
{
splash_screen: [
{
key:care_any_ware,
max_length:25,
value:随时随地,
value_en:随时随地,
评论:
}
$,
< big>login_start< / big>:[
{
key:log_in,
max_length:35 ,
值:登录,
value_en:登录,
评论:
},
{
key:join_today,
max_length:35,
value:今天加入,
value_en:今天加入,
评论:
},
{
key:take_a_quick_tour,
max_length:35,
value :快速游览,
value_en :快速游览,
评论:
}
],
我尝试过的事情:
*尝试列表中的属性
* Raju的博客 - 创建N层ASP.NET Web API应用程序 [ ^ ]
如何获取名称到Web API中的Json数组 [ ^ ]
更多stackoverflow链接
< blockquote>将数据转换为字典而不是列表:
var groupedCustomerList = _commonService.GetMultilingualDatas(language)
.GroupBy(u = > u.screen_name)
.ToDictionary(g = > g.Key);
string output = Newtonsoft.Json.JsonConvert.SerializeObject(groupedCustomerList);
注意:您仍然会在每个项目上使用 screen_name
属性。如果要删除它,可以将组元素投影到匿名类:
.GroupBy(u = > ; u.screen_name,u = > new
{
u.key,
u.max_length,
u。 value ,
u.value_en,
u.comments ,
})
(或者只是将 [JsonIgnore]
属性添加到该属性。)
Hi folks, can anyone help me to achieve the output like this. i cant able to set the array header like below. suggest me the best way and solution either sample source
My Code:
var groupedCustomerList = _commonService.GetMultilingualDatas(language) .GroupBy(u => u.screen_name) .Select(grp => grp.ToList()) .ToList(); string output = Newtonsoft.Json.JsonConvert.SerializeObject(groupedCustomerList);
Actual Result i'm getting:
[ [ { "multilingual_id": 1, "screen_name": "splash_screen", "key": "care_any_ware", "max_length": 0, "value": "Care anywhere", "comments": "", "language": "en-gb" } ], [ { "multilingual_id": 2, "screen_name": "login_start", "key": "log_in", "max_length": 0, "value": "Log in", "comments": "", "language": "en-gb" }, { "multilingual_id": 3, "screen_name": "login_start", "key": "join_today", "max_length": 0, "value": "Join today", "comments": "", "language": "en-gb" }, { "multilingual_id": 4, "screen_name": "login_start", "key": "take_a_quick_tour", "max_length": 0, "value": "Take a quick tour", "comments": "", "language": "en-gb" } ],
Expected Result:
{ "splash_screen": [ { "key": "care_any_ware", "max_length": "25", "value": "Care anywhere", "value_en": "Care anywhere", "comments": "" } ], <big>"login_start"</big>: [ { "key": "log_in", "max_length": "35", "value": "Log in", "value_en": "Log in", "comments": "" }, { "key": "join_today", "max_length": "35", "value": "Join today", "value_en": "Join today", "comments": "" }, { "key": "take_a_quick_tour", "max_length": "35", "value": "Take a quick tour", "value_en": "Take a quick tour", "comments": "" } ],
What I have tried:
*Tried with list as property in a class
*Raju's Blog - Creating N-Tier ASP.NET Web API application[^]
How to get a Name to a Json Array in web API[^]
few more stackoverflow links
Convert the data to a dictionary instead of a list:
var groupedCustomerList = _commonService.GetMultilingualDatas(language) .GroupBy(u => u.screen_name) .ToDictionary(g => g.Key); string output = Newtonsoft.Json.JsonConvert.SerializeObject(groupedCustomerList);
NB: You'll still end up with thescreen_name
property on each item. If you want to remove that, you can project the group elements to an anonymous class:
.GroupBy(u => u.screen_name, u => new { u.key, u.max_length, u.value, u.value_en, u.comments, })(Or just add the
[JsonIgnore]
attribute to that property.)
这篇关于将通用列表转换为json格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!