尝试对包含匿名函数的JSON字符串进行反序列化时,我收到.net运行时错误:
无效的JSON原语:function .
JSON字符串本身如下所示:
{动作:“淡入淡出”,回调:function(){doSomething();}}
这让我想知道是否允许在.net中序列化的JSON字符串中使用匿名函数 . 更具体地说,我只能使用.net框架自己的JavaScriptSerializer类进行反序列化 . 任何人都可以证实这一点,或者有解决方案?
JSON是 data representation protocol ,因此它只能用于表示数据,而不能用于表示行为(函数是什么) . 正如你的反序列化器告诉你的那样,你所拥有的是无效的JSON(它是一个有效的JavaScript对象,但这会引起一些混乱) . 有关此格式的更多详细信息,请查看JSON spec .
所以对你的问题 - 不,你不能反序列化包含JSON的函数,因为它首先不是JSON .
1 回答
JSON是 data representation protocol ,因此它只能用于表示数据,而不能用于表示行为(函数是什么) . 正如你的反序列化器告诉你的那样,你所拥有的是无效的JSON(它是一个有效的JavaScript对象,但这会引起一些混乱) . 有关此格式的更多详细信息,请查看JSON spec .
所以对你的问题 - 不,你不能反序列化包含JSON的函数,因为它首先不是JSON .