我需要评估一个 JavaScriptSerializer() 对象。
var userSettings = '<%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewData["UserSettings"]) %>';
上面的行给出的输出为:
{"SalesTaxPercentage":7.75,"StartOfWeek":"SUNDAY","NoofRowsInList":10,"ShowDashboardEntry":5,"DisplayContactsFormat":"LastName, FirstName","FooterNotes":""When you look good, you feel good...when you feel good, your attitude changes...and attitude is everything!"
You are the heart of my business....THANK YOU!"}
当我将 eval 用于序列化内容时,例如:
userSettings = eval("(" + userSettings + ")");
它抛出一个错误:
属性列表后缺少 }
这是因为 eval 期间序列化对象中的特殊字符(在 FooterNotes 中带有 " 和开始和结束引号之间的一些其他字符)。
如何在 eval 之前删除序列化中的特殊字符?
或者我如何SalesTaxPercentage
从序列化对象中获取值?