c# - 使用 Json.NET lib 通过 json 发送 javascript 函数

标签 c# .net json.net

我试图在 .Net 中通过 json 发送 javascript 函数,但在序列化对象时遇到问题。

javascript 库 Highcharts在其 json 对象上使用以下函数来自定义图表工具提示。

tooltip: {
         formatter: function() {
            var s;
            if (this.point.name) { // the pie chart
               s = ''+
                  this.point.name +': '+ this.y +' fruits';
            } else {
               s = ''+
                  this.x  +': '+ this.y;
            }
            return s;
         }
      },

我正在尝试使用流行的 Json.NET使用匿名类型创建此类对象的库,但我所有的努力最终都序列化为一个字符串。任何帮助表示赞赏。谢谢!

最佳答案

我喜欢 ObOzOne 的回答,但仅使用 WriteRawValue 可以更简单一些。例如:

public class FunctionSerializer : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return (objectType == typeof(string));
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        string valueAsString = Convert.ToString(value);

        if (!string.IsNullOrWhiteSpace(valueAsString))
            writer.WriteRawValue(valueAsString);
    }
}

然后在您要序列化的属性上:

[JsonConverter(typeof(FunctionSerializer))]
public string HideExpression { get; set; }

关于c# - 使用 Json.NET lib 通过 json 发送 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4901859/

相关文章:

c# - ComboBox 触发器在更改 DataContext 时触发旧 DataContext

c# - JSON.NET 反序列化/序列化 JsonProperty JsonObject

c# - Json.NET 问题

c# - Entity Framework 和 OnModelCreating()

c# - 在 C# 中转换或解析 wiki

C# 多态性 - 访问不在父类中的子类的属性

java - 这两种单例实现有什么区别呢?

.net - 为什么只有 Matrix3x2 和 Matrix4x4?

.net - 如果我正在引导我的安装,我是否必须显示 .NET EULA

C# NewtonSoft Single Object 或 Array JsonConverter 不工作,没有错误