簡體   English   中英

如何使用JavaScript將JSON字符串轉換為JSON對象?

[英]How to convert JSON string to JSON Object using JavaScript?

我使用ASP.net的JavaScriptSerializer類來序列化我的對象,並將其返回給客戶端。 如何使用JavaScript反序列化字符串?

如果您已經在使用jQuery,您將很高興知道可以使用jQuery.parseJSON解析JSON字符串。

如果您不使用jQuery且不想使用jQuery,則始終可以使用由Douglas Crockford自己寫的精彩的JSON.parsejson_parse

如果沒有必要,我會避免使用eval()

我要提議... 什么都不做 假定序列化結果頁面和/或其他HTML片段一起返回。

// In some JavaScript area somewhere in the ASP page
var myObject = <%= JSONIfiedObjectResult %>;

這是有效的,因為JSON是JavaScript文字的子集 請注意,我沒有在<%= %>周圍加上引號。

如果反序列化是返回JSON等的AJAX調用的結果,請參見Zack的答案。

非常瑣碎-只是做

var x = eval(theString);

除了ASP.Net唯一的DateTime序列化之外,它應該得到所有內容,“真實” JSON不支持DateTime的序列化,它是ASP.Net擴展。 若要使用ASP.Net的反序列化器,請確保在頁面中包含<asp:ScriptManager>標記,然后調用

var x = Sys.Serialization.JavaScriptSerializer.deserialize(theString);

這將調用特殊的Date處理,並可能為您提供更好的安全性。

很標准,不是那么安全:

eval('(' + json + ')');

jQuery做的很酷的事情,仍然不是很安全:

(new Function('return ' + json))();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM