小编Bob*_*ale的帖子

NewtonSoft JsonConverter-访问其他属性

我需要将小数的输出json格式化为货币,并在要序列化的对象中指定文化,对象可以嵌套,因此无法在序列化器中预设选项。我当前的操作方式是使用额外的字符串属性来格式化输出。

[JsonIgnore]
public decimal Cost {get;set;}

[JsonIgnore]
public CultureInfo Culture {get;set;}

public string AsCurrency(decimal value) {
  return string.Format(this.Culture, "{0:c}", value);
}

[JsonProperty("FormattedCost")]
public string FormatedCost {
  get { return this.AsCurrency(this.Cost); }
}
Run Code Online (Sandbox Code Playgroud)

我有很多要处理的属性,我不介意反序列化,另一种语言使用JsonObject填充PDF,所以我想要字符串值。

理想情况下,我想要一个,JsonConverter所以我可以做

[JsonProperty("FormattedCost")]
[JsonConverter(typeof(MyCurrencyConverter))]
public decimal Cost {get;set;}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何访问转换器中包含对象的Culture属性。

public class MyCurrencyConverter : JsonConverter
{
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
       var culture = // How do I get the Culture from the parent object?
       writer.WriteValue(string.format(culture, "{0:c}", (decimal)value);

    }

    public override object …
Run Code Online (Sandbox Code Playgroud)

c# json.net

4
推荐指数
1
解决办法
1375
查看次数

这个循环在C#中执行多少次?

int x = 1;
while (x++ < 5)
{
    if ((x % 2) == 0)
        x += 2;
}
Run Code Online (Sandbox Code Playgroud)

问题是以下循环将执行多少次?我可以看到第1个x等于1,第2个x等于2,第3个x等于4,我认为它会执行3次,但为什么答案是2次?

c#

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

标签 统计

c# ×2

json.net ×1