gpt4 book ai didi

asp.net - 无法让 < 显示在 JSON 字符串中

转载 作者:行者123 更新时间:2023-12-02 18:47:33 24 4
gpt4 key购买 nike

好的,先听我说一下这个网址:

http://api.flickr.com/services/feeds/photos_public.gne?format=json

注意描述字符串中如何包含未编码的 html,例如 <、> 等。

以下是我如何使用 ASP.NET 3.5 和 C# 返回 JSON:

context.Response.ContentType = "text/plain";
context.Response.Charset = Encoding.UTF8.ToString();

int i = 1;

List<Product> products = GetTestProducts();
List<CrImageList> imageList = new List<CrImageList>();

foreach(Product p in products)
{
string imageTag = HttpUtility.HtmlEncode(string.Format(@"<img src=""{0}"" alt="""">", ImageUrl(p.Image, false)));

imageList.Add(new CrImageList{ImageTag = imageTag});
i++;
}

string jsonString = imageList.ToJSON();
context.Response.Write(jsonString);

这是此代码返回的 JSON,当我点击 .ashx 时调用该代码,它在包含它的方法中调用此代码:

[{"ImageTag":"&lt;img src=&quot;http://www.ourdomain.com/image/540.jpg&quot; alt=&quot;&quot;&gt;"},{"ImageTag":"&lt;img src=&quot;http://www.ourdomain.com/image/642.jpg&quot; alt=&quot;&quot;&gt;"}]

现在如何让编码字符在 JSON 返回的文本字符串中实际显示为 html 字符?

我希望 < 显示 < 等,就像 Flickr 在 JSON 中能够做到的那样。

如果我取出 HtmlEncode:

string.Format(@"", ImageUrl(p.Image, false));

然后我开始在字符串中获取/u00:

[{"ImageTag":"\u003cimg src=\"http://www.example.com/cat_image/540.jpg\" alt=\"\"\u003e"},
...

那么为什么 Flickr 的 JSON 在其描述中除了干净的 html 之外不返回任何内容?

最佳答案

您是否在其他地方使用该字符串?如果您在 Javascript 中使用它,则 <> 字符被转义并不重要。

<script type="text/javascript" defer="defer">
document.body.innerHTML = "\u003cimg src=\"http://www.example.com/cat_image/540.jpg\" alt=\"\"\u003e";
</script>

等同于:

<script type="text/javascript" defer="defer">
document.body.innerHTML = "<img src=\"http://www.example.com/cat_image/540.jpg\" alt=\"\">";
</script>

在 Javascript 中,这些字符串在处理它们时几乎是相同的。

关于asp.net - 无法让 < 显示在 JSON 字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058895/

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