【问题标题】:How to transform a JSON array of objects to an object containing arrays如何将 JSON 对象数组转换为包含数组的对象
【发布时间】:2015-10-14 13:35:27
【问题描述】:

我用 JSON.NET 编写了 json 序列化,如下所示:

{
    "data": [
        {
            "A": "1",
            "B": "4"
        },
        {
            "A": "2",
            "B": "5"
        },
        {
            "A": "3",
            "B": "6"
        }
    ]
}

知道如何从多个键更改为具有多个值的一个键

{
    "data": {
        "A": [
            "1",
            "2",
            "3"
        ],
        "B": [
            "4",
            "5",
            "6"
        ]
    }
}

提前致谢。

【问题讨论】:

  • 欢迎来到stackoverflow!该网站有助于解决与您的代码有关的问题。当您的结果与预期不同或出现错误时,您可以在此处发布代码。您还应该描述您获得的结果和预期的结果和/或提供错误详细信息。之后,该社区将帮助您解决问题,并且(有时)会给您一些指导。这就是 stackoverflow 的工作原理。如您所见,您的问题没有所有适当的信息。如果您想获得帮助,请编辑您的问题并添加包含其他所需信息的代码。

标签: c# json json.net


【解决方案1】:

您可以使用 Json.Net 的 LINQ-to-JSON API 相当轻松地做到这一点:

JObject obj = JObject.Parse(json);

obj["data"] = new JObject(obj["data"]
    .Children<JObject>()
    .SelectMany(jo => jo.Properties())
    .GroupBy(jp => jp.Name)
    .Select(g => new JProperty(g.Key, new JArray(g.Values()))));

Console.WriteLine(obj.ToString());

小提琴:https://dotnetfiddle.net/dXCdlO

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 2015-01-03
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多