【问题标题】:c# deserializing text with guids to json时间:2018-01-10 标签:c#deserializingtextwithguidstojson
【发布时间】:2013-07-22 14:58:31
【问题描述】:

我从服务合同 (solr) 中获得以下 json

{"highlighting":{
   "394c65f1-dfb1-4b76-9b6c-2f14c9682cc9":{
      "PackageName":["- <em>Testing<em> channel twenty."]},
   "baf8434a-99a4-4046-8a4d-2f7ec09eafc8":{
      "PackageName":["- <em>Testing<em> channel twenty."]},
   "0a699062-cd09-4b2e-a817-330193a352c1":{
     "PackageName":["- <em>Testing<em> channel twenty."]},
   "0b9ec891-5ef8-4085-9de2-38bfa9ea327e":{
     "PackageName":["- <em>Testing<em> channel twenty."]}}
}

当使用http://json2csharp.com/ 时,我无法反序列化它,因为 guid 在属性名称字段中。
有没有办法可以将其反序列化为 c# 对象(我可以将 guid 命名为另一个名称,即 Id)?
谢谢。

【问题讨论】:

  • 如果您控制输入格式,您可以在对象内移动 guid,例如 {"Id": "GUID", "PackageName":["- &lt;em&gt;Testing&lt;em&gt; channel twenty."]}

标签: c# json serialization deserialization


【解决方案1】:

您应该将此 JSON 字符串反序列化为 Dictionary&lt;Guid, Package&gt;:

示例:

string json = @"{
""326EAFDC-3553-4AA6-9D3B-79CC666A264C"": {...},
""70C57804-A9AF-41FC-9867-42C621E5A465"": {...}    
}";
var obj = JsonConvert.DeserializeObject<Dictionary<Guid, Package>>(json);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2012-09-18
    • 2015-04-29
    相关资源
    最近更新 更多