Javascript HTML编码的字符串能否转换为JSON?

Javascript HTML编码的字符串能否转换为JSON?,javascript,jquery,json,html-encode,Javascript,Jquery,Json,Html Encode,我正在从服务器获取编码数据,该数据使用.NETs WebUtility.HtmlEncode进行编码 然后显示该数据,并需要将其发送回服务器进行某些操作。在此期间,在使用JSON.stringify发送之前,它将转换为JSON。到目前为止一切正常 但是,一旦它到达服务器,它就会因为具有潜在危险而被拒绝。转换为JSON的对象可以具有具有特殊字符的字符串,例如- “这是约翰的账户”原来是“这是约翰的账户” 或者“John挣¥”原为“John挣¥” 我相信这些编码的字符串值会干扰JSON的正确

我正在从服务器获取编码数据,该数据使用.NETs WebUtility.HtmlEncode进行编码

然后显示该数据,并需要将其发送回服务器进行某些操作。在此期间,在使用JSON.stringify发送之前,它将转换为JSON。到目前为止一切正常

但是,一旦它到达服务器,它就会因为具有潜在危险而被拒绝。转换为JSON的对象可以具有具有特殊字符的字符串,例如-

“这是约翰的账户”原来是“这是约翰的账户”

或者“John挣¥”原为“John挣¥”

我相信这些编码的字符串值会干扰JSON的正确格式

Javascript中是否有任何方法可以JSONIfHTML编码的字符串

编辑:如果不清楚,在我执行JSON.stringify(数据)时,数据已经编码。 我的数据示例-

行[0]={column1,column2,column3}
其中,每列都是一个HTML编码的字符串,例如“This is John's account”

考虑到带有字符串的JSON对象如下所示

{ 'member1' : 'some string with &#165' }
我不认为这是JSON的错。更可能的情况是,您通过GET而不是POST将JSON对象传递给方法

作为一个特殊的例子,如果您通过GET方法提交JSON,并且没有指定允许GET行为,那么microsoftmvc3框架将抛出一个关于它不安全的错误


其原因可以在

中看出。我认为您可以通过三个步骤实现此功能:

  • 创建局部视图
  • 通过在局部视图中传递字符串值来调用该局部视图,并在其中执行操作
  • 通过JSON返回部分视图,并将其替换为旧视图
  • 但是通过JSON返回部分视图有点棘手,我的意思是你不能仅仅通过JSON返回部分视图。首先,您需要转换字符串中的部分视图,并返回此字符串。下面的方法将告诉您如何实现这一点:

        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在服务器上的样子吗?