DotNet.Highcharts和正确的JSON

DotNet.Highcharts和正确的JSON,json,highcharts,dotnethighcharts,Json,Highcharts,Dotnethighcharts,我对发送到highcharts的JSON有一个不一致的问题。Highcharts并不总是拒绝JSON,但当它拒绝JSON时,手动将JSON更新为正确的格式会始终修复它: Exmaple DotNet.Hightcharts输出: series: [{ data: [284, 49, 100, 19], name: 'some name' }, { data: [230, 250, 219, 878], name: 'some name 2' }] 当固定为包含引号时,它可以工作: "seri

我对发送到highcharts的JSON有一个不一致的问题。Highcharts并不总是拒绝JSON,但当它拒绝JSON时,手动将JSON更新为正确的格式会始终修复它:

Exmaple DotNet.Hightcharts输出:

series: [{ data: [284, 49, 100, 19], name: 'some name' }, { data: [230, 250, 219, 878], name: 'some name 2' }]
当固定为包含引号时,它可以工作:

 "series": [{ "data": [284, 49, 100, 19], "name": "some name" }, { "data": [230, 250, 219, 878], "name": "some name 2" }]

有没有办法让DotNet.Hightcharts输出这种格式?

看看DotNet.Highcharts的源代码,它似乎使用了自己的JsonSerializer,它不引用属性名,并且没有任何选项可以更改这种行为,也没有任何选项可以将序列化程序换成另一个。不过,他们已经直接更改了代码中的格式,因此看起来像是在中更改了以下行:应该做您需要的事情:

const string JSON_PROPERTY_WITH_VALUE_FORMAT = "{0}: {1}";
const string JSON_STRING_FORMAT = "'{0}'";
成为:

const string JSON_PROPERTY_WITH_VALUE_FORMAT = "{\"0\"}: {1}";
const string JSON_STRING_FORMAT = "\"{0}\"";
所以我想说你们的选择是:

  • 使用经过上述修改的源代码编译您自己的DotNet.Highcharts版本

  • 说服项目开发人员在下一版本中包含这些更改

  • 使用其他库,例如默认情况下不引用名称的库

  • 不使用任何库,只需使用独立的Json格式化程序(如Newtonsoft.Json)将数据呈现到手动编码的Highcharts javascript中的文本中


  • 然而,在上述任何一项之前,这个问题只会随着更多数据的添加而出现,这听起来确实有点奇怪。这不仅仅是数据中的撇号破坏了格式,是吗?它们似乎没有在格式化程序中转义。

    没有双引号的第一个输出看起来不错。当然,看起来不错。但它缺少引用。当您有更多的数据点时,highcharts突然决定对JSON挑三拣四。在任何情况下,我都可以查看源代码,更新JSON以包含引号,一切都很好。你能举一个DotNetHighcharts原始输出的例子吗。