首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按json对象共享密钥名分组。

按json对象共享密钥名分组。
EN

Stack Overflow用户
提问于 2017-07-10 06:44:31
回答 1查看 557关注 0票数 1
代码语言:javascript
复制
public class NameDTO
{
    public string Name;
}

public class ValDTO
{
    public string Val;
}

_nameDetials = new List<NameDTO>();
_valDetials = new List<ValDTO>();  

在List _nameDetials中,我获取键,而在_valDetails中,我获取下面用于块的值,并将它们添加到数组中。在下面给定的值中,我在每个列表中计算为20。

代码语言:javascript
复制
JArray jChildArray = new JArray();      

for (int i = 0; i < Math.Max(_nameDetials.Count, _valDetials.Count); i++)
{
    JObject jChildObject = new JObject();    
    jChildObject.Add(_nameDetials[i].Name, _valDetials[i].Val);    
    jChildArray.Add(jChildObject);                                                  
}

我有一个json数组,如下所示

代码语言:javascript
复制
[
  {
    "message-Code": "   0"
  },
  {
    "msg-Number-Pos1": "0"
  },
  {
    "msg-Number-Pos2": "0"
  },
  {
    "msg-Number-Pos3": " "
  },
  {
    "message-Code": "   0"
  },
  {
    "msg-Number-Pos1": "0"
  },
  {
    "msg-Number-Pos2": "0"
  },
  {
    "msg-Number-Pos3": " "
  },
  {
    "message-Code": "   0"
  },
  {
    "msg-Number-Pos1": "0"
  },
  {
    "msg-Number-Pos2": "0"
  },
  {
    "msg-Number-Pos3": " "
  },
  {
    "message-Code": "   0"
  },
  {
    "msg-Number-Pos1": "0"
  },
  {
    "msg-Number-Pos2": "0"
  },
  {
    "msg-Number-Pos3": " "
  },
  {
    "message-Code": "   0"
  },
  {
    "msg-Number-Pos1": "0"
  },
  {
    "msg-Number-Pos2": "0"
  },
  {
    "msg-Number-Pos3": "0"
  }
]

我想对这些数据进行分组,以获得如下所示的结果。

代码语言:javascript
复制
[
    {
      "message-Code": "  0",
      "msg-Number-Pos1": "0",
      "msg-Number-Pos2": "0",
      "msg-Number-Pos3": "0"
    },
    {
      "message-Code": "  0",
      "msg-Number-Pos1": "0",
      "msg-Number-Pos2": "0",
      "msg-Number-Pos3": "0"
    },
    {
      "message-Code": "  0",
      "msg-Number-Pos1": "0",
      "msg-Number-Pos2": "0",
      "msg-Number-Pos3": "0"
    },
    {
      "message-Code": "  0",
      "msg-Number-Pos1": "0",
      "msg-Number-Pos2": "0",
      "msg-Number-Pos3": "0"
    },
    {
      "message-Code": "  0",
      "msg-Number-Pos1": "0",
      "msg-Number-Pos2": "0",
      "msg-Number-Pos3": "0"
    }
]

我想根据相同的键名分组。

我尝试了下面的代码

代码语言:javascript
复制
var grouparray = (from t in jChildArray
                  group t by new { t }
                  into grp
                  select grp.Key.t).ToList();

我无法跟踪我是什么,missing.Or,我们可以将一个json数组分组为等号,即在我的例子中为4。我是c#新手,无法找到匹配的代码。有人能帮忙吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 13:07:11

您似乎不想按键进行分组,而是按项目的数量分组。你能试试:

代码语言:javascript
复制
    private string Serialize(List<NameDTO> _nameDetials, List<ValDTO> _valDetials)
    {
        JArray jChildArray = new JArray();
        for (int i = 0; i < Math.Max(_nameDetials.Count, _valDetials.Count) / 4; i++)
        {
            var jChildObject = new JObject();
            for (int j = 0; j < 4; j++)
                jChildObject.Add(_nameDetials[i * 4 + j].Name, _valDetials[i * 4 + j].Val);
            jChildArray.Add(jChildObject);
        }
        return JsonConvert.SerializeObject(jChildArray);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45005355

复制
相关文章

相似问题

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