相关疑难解决方法(0)

.NET NewtonSoft JSON将映射反序列化为不同的属性名称

我有以下从外部方收到的JSON字符串.

{
   "team":[
      {
         "v1":"",
         "attributes":{
            "eighty_min_score":"",
            "home_or_away":"home",
            "score":"22",
            "team_id":"500"
         }
      },
      {
         "v1":"",
         "attributes":{
            "eighty_min_score":"",
            "home_or_away":"away",
            "score":"30",
            "team_id":"600"
         }
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我的映射类:

public class Attributes
{
    public string eighty_min_score { get; set; }
    public string home_or_away { get; set; }
    public string score { get; set; }
    public string team_id { get; set; }
}

public class Team
{
    public string v1 { get; set; }
    public Attributes attributes { get; set; }
}

public class RootObject
{ …
Run Code Online (Sandbox Code Playgroud)

serialization json json.net deserialization c#-4.0

271
推荐指数
5
解决办法
20万
查看次数

JSON.net ContractResolver与JsonConverter

我已经和JSON.net合作了一段时间.我已经编写了自定义转换器和自定义合同解析器(通常来自修改SO和Newtonsoft网站上的示例),它们工作正常.

除了例子之外,我面临的挑战是,我什么时候应该使用其中一个(或两个)进行处理.根据我自己的经验,我基本上已经确定合同解决方案更简单了,所以如果我可以用他们做我需要的东西,我会这样做; 否则,我使用自定义JsonConverters.但是,我进一步知道两者有时一起使用,因此概念变得更加不透明.

问题:

  1. 是否存在区分何时用户与其他用户的来源?我发现Newtonsoft文档不清楚这两者是如何区分的,或者何时使用其中一种.
  2. 两者之间的排序管道是什么?

json.net

56
推荐指数
1
解决办法
1万
查看次数

将多个属性名称映射到 Newtonsoft.JSON 中的同一字段

我在分布式系统中有两个组件,它们发送使用 Newtonsoft.JSON (JSON.Net) 序列化/反序列化的消息。

消息属性当前以挪威语发送,我希望将代码库翻译成英语。由于发生了一些变化,一些消息将以挪威语发送,并由已升级到英语版本的组件处理,因此它需要能够支持这两种语言。

我希望在反序列化时,“挪威”属性名称和英语都将映射到同一属性。例如:

例如,采用英语中的“name”或挪威语中的“navn”。

public class Message
{
     [JsonProperty("Navn")]
     public string Name { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

上面的问题是它只能从Navn => Name. 我希望它能够将Navn和映射NameName.

这在 Newtonsoft.JSON 中可用,无需太多自定义编码吗?

json json.net

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

json.net ×3

json ×2

c#-4.0 ×1

deserialization ×1

serialization ×1