0

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

示例 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 输出这种格式?

4

1 回答 1

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 中的文字。

不过,在上述任何一项之前,这个问题仅在添加更多数据时才会出现,这听起来有点奇怪。这不仅仅是数据中的撇号破坏格式的情况,是吗?它们似乎没有在格式化程序中被转义。

于 2014-06-07T15:20:05.343 回答