2009-06-29 58 views
2

好吧,先聽我說通過看這個網址:無法獲得<露面的JSON字符串

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;"}] 

現在,我怎麼得到的編碼字符實際顯示爲文本字符串HTML字符通過我的JSON回來了?

我想<顯示<等等,就像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其描述?

+3

您需要向我們展示了什麼的toJSON方法是 – Jab 2009-06-29 15:30:51

回答

5

你在其他地方使用字符串嗎?如果您在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中,這些字符串是幾乎相同的,當談到做與他們的東西。

3

如果你不想編碼的值,那麼你爲什麼通過HttpUtility.HtmlEncode方法運行它們?

如果的toJSON是不是你可以改變停止的字符編碼的Unicode,那麼你只需要做稱之爲後替換...

string jsonString = imageList.ToJSON(); 
jsonString = jsonString.Replace("\u003c", "<").Replace("\u003e", ">"); 
context.Response.Write(jsonString); 
+0

我脫掉了編碼,然後得到了\ u003,我不知道那是什麼...... – PositiveGuy 2009-06-29 23:37:11

相關問題