使用特殊字符解析 JSON
Parsing JSON with special characters
我正在使用flot进行一些绘图,但是在使用json传递tickSize时遇到了一些问题。 我正在使用 MVC 并在模型中传递 json。 以下是在我的 javascript 函数中获取 json 的一些代码:
var json = '<%=Model.Json %>';
var data = jQuery.parseJSON(json);
以下是 JSON 离开控制器的外观:
{'"GraphData'":[{'"X'":1333929600000,'"Y'":0.0},{'"X'":1333670400000,'"Y'":0.46}],'"Max'":1333324800000,'"Min'":1333929600000,'"TickSize'":'"[1, 'day']'"}
我遇到问题的部分是"TickSize"。 如您所见,"[1, '天']"带有方括号。 我认为存在一些解析问题,因为 [] 通常意味着一个数组。 Flot 希望这种格式的即时报价大小。 如何构建我的 Json 以便我可以获取即时报价大小?
问题是字符串值中的单引号,因为您也尝试将 JSON 字符串包装在其中。生成的 JavaScript 将被(截断):
var json = '...,'"TickSize'":'"[1, 'day']'"}';
由于现在单引号的计数为 4 个,因此 day
实际上不是字符串的一部分,并且会产生语法错误。
但是,你甚至不需要引用和解析JSON,因为它是从JavaScript语法派生的:
var data = <%= Model.Json %>;
如果你需要字符串表示,你可以在 JavaScript 中字符串化它:
var json = JSON.stringify(data):
或者在字符串服务器端转义单引号:
var json = '<%= Model.Json.Replace("'", "'''") %>';
这是因为您用'
而不是"
包围了字符串。这会导致字符串以您的第一个'
终止。
将第一行重写为
var json = "<%=Model.Json %>";
解决方案:将单反斜杠"''"替换为双反斜杠"''''"。
对于换行符"'"到"'''"
使用工具提示消息
相关文章:
- 如何解析json中的特殊字符
- JSON编码一个包含#和其他特殊字符的字符串
- 用Javascript替换从JSON中获取的数组数据特殊字符
- json-break-html中的特殊字符
- Titanium Mobile JSON 和 Android 中的特殊字符
- 将特殊字符字符串到 JSON 字符串化非法令牌中
- 使用特殊字符解析 JSON
- 如何在JSON字符串中使用特殊字符
- 如何使用带有特殊字符的jquery解析Json
- 通过某些特殊字符或字符序列进行拆分来解析JSON输出
- JSON通信损坏了特殊字符
- 如何避免在Javascript中创建Json对象时使用特殊字符
- JSON分析因特殊字符而失败
- 在 Ajax POST 和 JSON 中发送特殊字符
- 从JSON到xml的特殊字符
- 如何添加具有特殊字符的字符串作为json键
- Js - json.解析-保留特殊字符
- JSON.用特殊字符解析
- JSON Javascript特殊字符如何获取值
- JSON中的特殊字符会破坏JS