如何解决在C#中,如何对XML进行编码以将其输出到页面的JavaScript部分的JSON内
|| 我有一个处理程序,可以上传KML文件并以KML文件作为属性返回JSON:context.Response.Write(\"{\\\"name\\\":\\\"\" + FileName +
\"\\\",\\\"type\\\":\\\"\" + FileType +
\"\\\",\\\"size\\\":\\\"\" + FileSize +
\"\\\",\\\"region_id\\\":\\\"\" + regionID +
\"\\\",\\\"kml\\\":\\\"\" + HttpUtility.HtmlEncode(xmlData) + \"\\\"}\");
如您所见,我正在尝试使用HttpUtility.HtmlEncode
对KML进行编码,但响应中出现错误:
未捕获的异常:无效的JSON
如何在C#中对XML / KML文件进行属性编码,以便以后可以在JavaScript中对其进行解码?
编辑1:根据Cheeso的评论
我在IIS 7.5 Windows 7上使用ASP.NET,.NET版本4。我的处理程序是ashx文件。如果我在响应中遗漏了KML数据(HttpUtility.HtmlEncode(xmlData)
),则响应工作正常。
编辑#2
我还尝试根据主持人的评论使用ѭ3。我这样使用它:
System.Web.Script.Serialization.JavaScriptSerializer serializer;
context.Response.Write(\"{\\\"name\\\":\\\"\" + FileName +
\"\\\",\\\"kml\\\":\\\"\" + serializer.Serialize(xmlData) + \"\\\"}\");
我仍然收到相同的“无效的JSON”错误。
解决方法
HTML编码器将“ 5”编码为“ 6”,依此类推。这无助于将XML转换为JSON格式。您想要的是一个JavaScript编码。使用
HttpUtility.JavaScriptStringEncode
http://msdn.microsoft.com/en-us/library/dd991914.aspx
,您想构建JSON,对。。。显然我建议JSON序列化器是荒谬的。。。
string FileName = \"foo.txt\",FileType = \"csv\";
int FileSize = 1134,regionID = 12;
string xml = \"<foo><bar/></foo>\";
string json= new JavaScriptSerializer().Serialize(new {
name = FileName,type = FileType,size = FileSize,region_id = regionID,kml = xml
});
在大多数情况下,使用预先固定的序列化程序对于数据的边缘情况既方便又可靠。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。