使用JSON.NET为Dojo data-dojo-props序列化C#对象

时间:2013-01-18 12:14:55

标签: dojo json.net

Dojo的dijit html5标签使用attribte名称data-dojo-props。该值基本上是一个JSON字符串,在属性名称周围没有引号,没有最外面的大括号。

它看起来像这样。

data-dojo-props="prop1:'xyz', prop2:true, prop3: { subprop1: 1, subprop2: 'abc'}"

我正在使用C#使用JSON.NET从C#对象中写出来并传入对象指针。我发现设置省略了属性名称引号,但我无法找到一种优雅的方法来删除外部大括号。

现在,我将通过正则表达式运行字符串以删除它们,但是想知道是否有新的更好的方式。

1 个答案:

答案 0 :(得分:0)

我分别序列化每个顶级属性并使其成为全局javascript变量。然后我在data-dojo-props中引用该变量。我承认它并不那么优雅。

我对上述方法的关注是,如果subprop2的值包含引号,则会出现解析器错误。

<script type="text/javascript">
    menuData = {THE SERIALIZED JSON GOES HERE};
</script>
<div data-dojo-type="SomeWidget" data-dojo-props="menuData: menuData"></div>