【问题标题】:How to Convert Json Array to Single JSON object without using T object in C#?如何在不使用 C# 中的 T 对象的情况下将 Json 数组转换为单个 JSON 对象?
【发布时间】:2020-08-23 18:17:12
【问题描述】:

我正在寻找一种将 Json 数组 [{},{}] 转换为 object => [{}] 的单线器。

我有以下序列化的 JSON 字符串,

 [
  {
    "Address": "Adresse"
  },
  {
    "AddressDetails": "Détails de l'adresse"
  },
  {
    "BackToLoginPage": "Retour à la page de connexion"
  }
]

现在我想在不使用一种类型或模型对象的情况下将其转换为以下格式,因为数据是动态的,它将包含 1000 个字段,所以我无法创建具有动态属性的模型类型对象。那么有没有办法将它转换成一个单一的 JSON 对象/字符串?它看起来很简单,但我无法转换它。

[
    "Address": "Adresse",      
    "AddressDetails": "Détails de l'adresse",      
    "BackToLoginPage": "Retour à la page de connexion"
]

【问题讨论】:

  • 你的最后一个例子是无效的 JSON =)
  • 这一行够吗? result = Regex.Replace(json,@"},|{|}",""),虽然我不推荐它。另外,我不建议只要求一行答案,或者不尝试就写问题

标签: c# arrays json dictionary object


【解决方案1】:

Newtonsoft.Json.Linq 可以解析/处理没有模型的 JSON (JObject/JArray)。 这是一个班轮:

var mergedJson = new JObject(JArray.Parse(json).OfType<JObject>().SelectMany(o => o.Properties()).GroupBy(p => p.Name).Select(grp => grp.First())).ToString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 2020-12-14
    • 2014-05-02
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多