cap*_*gon 2 javascript c# xml asp.net json
我有一个上传KML文件的处理程序,并返回带有KML文件作为属性的JSON:
context.Response.Write("{\"name\":\"" + FileName +
"\",\"type\":\"" + FileType +
"\",\"size\":\"" + FileSize +
"\",\"region_id\":\"" + regionID +
"\",\"kml\":\"" + HttpUtility.HtmlEncode(xmlData) + "\"}");
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试使用KML进行编码,HttpUtility.HtmlEncode但我的响应中出现错误:
未捕获的异常:无效的JSON
如何在C#中对XML/KML文件进行属性编码,以便稍后在JavaScript中对其进行解码?
编辑#1:根据Cheeso的评论
我在IIS 7.5 Windows 7上使用ASP.NET,.NET版本4.我的处理程序是一个ashx文件.如果我HttpUtility.HtmlEncode(xmlData)从响应中省略KML数据(),则响应正常.
编辑#2
我也尝试使用System.Web.Script.Serialization.JavaScriptSerializer主持人的评论.我这样使用它:
System.Web.Script.Serialization.JavaScriptSerializer serializer;
context.Response.Write("{\"name\":\"" + FileName +
"\",\"type\":\"" + FileType +
"\",\"size\":\"" + FileSize +
"\",\"region_id\":\"" + regionID +
"\",\"kml\":\"" + serializer.Serialize(xmlData) + "\"}");
Run Code Online (Sandbox Code Playgroud)
我仍然得到相同的"无效的JSON"错误.
你想构建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
});
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,使用预先封装的串行器对于数据的边缘情况更方便且更健壮.
| 归档时间: |
|
| 查看次数: |
2713 次 |
| 最近记录: |