gpt4 book ai didi

c# - 在 C# 中如何对 XML 进行编码以在页面的 JavaScript 部分将其输出到 JSON 中

转载 作者:数据小太阳 更新时间:2023-10-29 02:47:55 26 4
gpt4 key购买 nike

我有一个处理程序可以上传 KML 文件并返回以 KML 文件作为属性的 JSON:

context.Response.Write("{\"name\":\"" + FileName + 
"\",\"type\":\"" + FileType +
"\",\"size\":\"" + FileSize +
"\",\"region_id\":\"" + regionID +
"\",\"kml\":\"" + HttpUtility.HtmlEncode(xmlData) + "\"}");

如您所见,我正在尝试使用 HttpUtility.HtmlEncode 对 KML 进行编码,但我的响应出现错误:

uncaught exception: Invalid JSON

如何在 C# 中对 XML/KML 文件进行属性编码,以便稍后在 JavaScript 中对其进行解码?

编辑 #1:根据 Cheeso 的评论我在 IIS 7.5 Windows 7 上使用 ASP.NET、.NET 版本 4。我的处理程序是一个 ashx 文件。如果我从响应中省略 KML 数据 (HttpUtility.HtmlEncode(xmlData)),响应将正常工作。

编辑#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) + "\"}");

我仍然收到相同的“无效 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
});

在大多数情况下,使用预先封装的序列化器更方便,并且对数据的边缘情况更稳健。

关于c# - 在 C# 中如何对 XML 进行编码以在页面的 JavaScript 部分将其输出到 JSON 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com