Javascript HTML编码的字符串能否转换为JSON?
我正在从服务器获取编码数据,该数据使用.NETs WebUtility.HtmlEncode进行编码 然后显示该数据,并需要将其发送回服务器进行某些操作。在此期间,在使用JSON.stringify发送之前,它将转换为JSON。到目前为止一切正常 但是,一旦它到达服务器,它就会因为具有潜在危险而被拒绝。转换为JSON的对象可以具有具有特殊字符的字符串,例如- “这是约翰的账户”原来是“这是约翰的账户” 或者“John挣¥”原为“John挣¥” 我相信这些编码的字符串值会干扰JSON的正确格式 Javascript中是否有任何方法可以JSONIfHTML编码的字符串 编辑:如果不清楚,在我执行JSON.stringify(数据)时,数据已经编码。 我的数据示例- 行[0]={column1,column2,column3}Javascript HTML编码的字符串能否转换为JSON?,javascript,jquery,json,html-encode,Javascript,Jquery,Json,Html Encode,我正在从服务器获取编码数据,该数据使用.NETs WebUtility.HtmlEncode进行编码 然后显示该数据,并需要将其发送回服务器进行某些操作。在此期间,在使用JSON.stringify发送之前,它将转换为JSON。到目前为止一切正常 但是,一旦它到达服务器,它就会因为具有潜在危险而被拒绝。转换为JSON的对象可以具有具有特殊字符的字符串,例如- “这是约翰的账户”原来是“这是约翰的账户” 或者“John挣¥”原为“John挣¥” 我相信这些编码的字符串值会干扰JSON的正确
其中,每列都是一个HTML编码的字符串,例如“This is John's account”考虑到带有字符串的JSON对象如下所示
{ 'member1' : 'some string with ¥' }
我不认为这是JSON的错。更可能的情况是,您通过GET而不是POST将JSON对象传递给方法
作为一个特殊的例子,如果您通过GET方法提交JSON,并且没有指定允许GET行为,那么microsoftmvc3框架将抛出一个关于它不安全的错误
其原因可以在中看出。我认为您可以通过三个步骤实现此功能:
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
此方法将转换字符串形式的部分视图,并通过JSON将其返回给服务器。您需要传递给其中的参数,第一个是局部视图名称,第二个是模型。希望你能通过这个解决你的问题。最后的解决方案,更像是一个黑客,我添加了一个注释- [验证输入(错误)]
到后端的我的函数,这样它就不会尝试验证我的JSON字符串。
JSON.stringify
对实体进行编码?如果实体未编码或已编码,它是否有效?我很困惑…实体已经被编码了。Im JSON.stringifying encoded Entities带有转义实体的字符串是完全有效的JSON字符串。@neuDev33您是否从服务器收到关于拒绝原因的特定错误?我不明白为什么一个编码实体会导致这个问题。如果有任何未编码的实体会这样做,则异常为“分析值时遇到意外字符”。如果我的字符串没有特殊字符,则不会发生这种情况。如果转换为JSON的对象没有任何带有特殊字符的字符串,则该函数可以正常工作。只有当JSON具有特殊字符时,才会出现此问题。这是否仍然是问题所在?您使用的服务器端语言是什么?你能发布你的JSON在服务器上的样子吗?