将C#动态对象序列化为javascript使用的JSON对象
基于该示例,我修改了DynamicXml.cs并解析了xml字符串。 修改部分如下将C#动态对象序列化为javascript使用的JSON对象,c#,json,dynamic,C#,Json,Dynamic,基于该示例,我修改了DynamicXml.cs并解析了xml字符串。 修改部分如下 public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; if (binder.Name == "Controls") result = new DynamicXml(_elements.Elements());
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = null;
if (binder.Name == "Controls")
result = new DynamicXml(_elements.Elements());
else if (binder.Name == "Count")
result = _elements.Count;
else
{
var attr = _elements[0].Attribute(
XName.Get(binder.Name));
if (attr != null)
result = attr.Value;
else
{
var items = _elements.Descendants(
XName.Get(binder.Name));
if (items == null || items.Count() == 0)
return false;
result = new DynamicXml(items);
}
}
return true;
}
要分析的xml字符串:
"< View runat='server' Name='Doc111'>" +
"< Caption Name='Document.ConvertToPdf' Value='Allow Conversion to PDF'></ Caption>" +
"< Field For='Document.ConvertToPdf' ReadOnly='False' DisplayAs='checkbox' EditAs='checkbox'></ Field>" +
"< Field For='Document.Abstract' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" +
"< Field For='Document.FileName' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" +
"< Field For='Document.KeyWords' ReadOnly='False' DisplayAs='label' EditAs='textinput'></ Field>" +
"< FormButtons SaveCaption='Save' CancelCaption='Cancel'></ FormButtons>" +
"</ View>";
“”+
“”+
“”+
“的字段”+
“的字段”+
“”+
"";
动态表单=新的DynamicXml(仅标记字段)
有没有一种方法可以将这个动态对象的内容(动态中的名称-值对)序列化为JSON对象并发送到客户端(浏览器)?我听说它工作得很好,尽管我自己从未使用过它