【问题标题】:How to deserialize json without key value pair? C#如何在没有键值对的情况下反序列化 json? C#
【发布时间】:2020-09-06 13:01:01
【问题描述】:

我从无法更改的 JSON 端点 API 获得以下 JSON 数据:

[
  [
    "NameA",
    [
      "AAA"
    ]
  ],
  [
    "NameB",
    [
      "BBB"
    ]
  ],
  [
    "NameC",
    [
      "CCC"
    ]
  ]
]

我知道它是一个有效的 JSON。虽然我无法在 C# 中解析它。我尝试使用在线工具为这个 JSON 生成类,但没有帮助。任何帮助将不胜感激,因为我真的坚持这一点。

【问题讨论】:

  • 预期结果是什么?

标签: c# json unity3d key-value


【解决方案1】:

您可以使用MessagePack via Nuget

类对象

[MessagePackObject]
public class Item1
{
    [Key(0)]
    public string Key { get; set; }
    [Key(1)]
    public Item2 Value { get; set; }
}

[MessagePackObject]
public class Item2
{
    [Key(0)]
    public string Value { get; set; }
}

序列化

var json = File.ReadAllText("json1.json");
var byteArray = MessagePackSerializer.ConvertFromJson(json);
var itemList = MessagePackSerializer.Deserialize<List<Item1>>(byteArray);

输出

【讨论】:

  • 谢谢@tontonsevilla 我不知道通过 Nuget 的 MessagePack。这应该可以解决它。
  • 我试过了,但不幸陷入了以下错误:FormatterNotRegisteredException:ElementsListContainer 未在解析器中注册:MessagePack.Resolvers.StandardResolver
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
相关资源
最近更新 更多