DotNet.Highcharts和适当的JSON

时间:2014-06-05 19:15:32

标签: json highcharts dotnethighcharts

我发送到highcharts的JSON有一个不一致的问题。 Highcharts并不总是拒绝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输出这种格式?

1 个答案:

答案 0 :(得分:1)

查看DotNet.Highcharts源代码,它似乎使用自己的JsonSerializer,它不引用属性名称,并且没有选项可以更改此行为,也无法将序列化程序替换为另一个。他们已经直接改变了代码中的格式,所以看起来改变了以下几行:DotNet.Highcharts/JsonSerializer.cs应该做你需要的:

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}\"";

所以我说你的选择是:

  1. 使用上述更改的源代码编译您自己的DotNet.Highcharts版本。

  2. 说服项目开发人员在下一版本中包含此类更改。

  3. 使用替代库,例如Highcharts.Net,默认情况下会引用名称。

  4. 根本不使用任何库,只需使用像Newtonsoft.Json这样的独立Json格式化程序将数据渲染到手工编码的Highcharts javascript中的文字中。

  5. 在上述任何一种情况之前,这个问题只会随着更多数据的添加而出现,这听起来有点奇怪。它不只是你的数据中的撇号情况打破格式吗?他们似乎没有在格式化程序中被转义。