公共类的一部分我已经为dataTables插件构建了一个数据结构。
构建数据结构的代码是:
var response = "{ \"data\": [";
response = response + "[";
response = response + "\"Clark, Keith\",";
response = response + "\"Corporate\",";
response = response + "\"XXX-XXX-XXXX\",";
response = response + "\"XXX-XXX-XXXX\",";
response = response + "\"XXXX@XXXX.com\"";
response = response + "],";
response = response + "[";
response = response + "\"Clark, Keith\",";
response = response + "\"Corporate\",";
response = response + "\"YYY-YYY-YYYY\",";
response = response + "\"YYY-YYY-YYYY\",";
response = response + "\"YYYY@XXXX.com\"";
response = response + "]";
response = response + "] }";
return response;
运行正常并按预期创建表。我遇到问题的地方是当我尝试将HTML标记添加到字段时。我想在名称旁边使用字体真棒图标来表示这样的状态:
<i class="fa fa-arrow-up" style="color: #00ff00;" aria-hidden="true">
我尝试修改我的代码:
response = response + "\"<i class=\"\"fa fa-arrow-up\"\" style=\"\"color: #00ff00;\"\" aria-hidden=\"\"true\"\">Clark, Keith\",";
但是现在我收到的错误是JSON没有正确格式化。我是否遗漏了某些内容,或者是否可以在JSON结构中使用HTML标记?
答案 0 :(得分:0)
问题是你正在生成一个无效的json字符串文字。
"<i class=""fa fa-arrow-up"" style=""color: #00ff00;"" aria-hidden=""true"">Clark, Keith",
使用文字反斜杠转义报价,而不是加倍。
你必须这样做:
"\"<i class=\\\"fa fa-arrow-up\\\" style=\\\"color: #00ff00;\\\" aria-hidden=\\\"true\\\">Clark, Keith\","
这说明了为什么你不应该生成这样的字符串。有些工具可以为您安全地使用它们。 Json.net可以轻松完成这项工作。
var markup = "<i class=\"fa fa-arrow-up\" style=\"color: #00ff00;\" aria-hidden=\"true\">";
var response = new JObject
{
["data"] = new JArray
{
new JArray
{
markup + "Clark, Keith",
"Corporate",
"XXX-XXX-XXXX",
"XXX-XXX-XXXX",
"XXXX@XXXX.com",
},
new JArray
{
markup + "Clark, Keith",
"Corporate",
"YYY-YYY-YYYY",
"YYY-YYY-YYYY",
"YYYY@XXXX.com",
},
}
};
return response.ToString();
话虽如此,您不应该为数据添加标记。数据就是数据,仅此而已。如果您想影响它的显示方式,那么该标记应该添加到您的视图中。