我想知道使用 C# 序列化数据属性中的对象(例如 <div data-options="[jsonlike object]>"
)的最可靠方法是什么。我想使用 $.data() 获取这些数据,如果数据没有以良好的方式写入(例如空格),jquery 无法获取正确的对象并返回一个字符串。
我可以完全访问 JSON.Net 库。
最佳答案
- 如果尚未安装 JSON.NET Nuget 包,请安装它。
使用它。例如,在 Razor 语法中:
<div class="my-component" data-options="@JsonConvert.SerializeObject(new { active = true, name = "Foo", // ... })"> </div>
消费它:
jQuery(function($) { $('.my-component').each(function() { var component = $(this); var options = component.data('options'); component.somePlugin(options); }); })
JsonConvert.SerializeObject()
将确保对象呈现为有效的 JSON,无论是否存在任何奇怪的字符(如反斜杠)。 Razor 的@
语法将确保生成的 JSON 针对 HTML 上下文正确编码,因此像 <
这样的符号也不会引起问题。
关于javascript - 在数据属性中序列化对象的最可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326914/