Dav*_*ins 6 .net javascript serialization
是否有一个等效的属性可以放在.NET类中的对象属性上,它将执行等效的XmlElement或XmlAttribute?
[XmlRoot("objects")]
public class MyObjects: List<MyObject> { }
[XmlRoot("object")]
public class MyObject {
[XmlAttribute("name")]
public string Name { get; set; }
[XmlAttribute("title")]
public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这将返回类似于以下内容的XML:
<objects>
<object name="David" title="Engineer" />
<object name="William" title="Developer" />
</objects>
Run Code Online (Sandbox Code Playgroud)
我想拥有JavaScriptSerializer,由Controller类中的ASP.NET MVC框架'Json'方法使用:
public ActionResult Search() {
// code to populate data object
return Json(data);
}
Run Code Online (Sandbox Code Playgroud)
返回相同的格式化结果,如下所示:
[{"name":"David","title":"Engineer"},{"name":"William","title":"Developer"}]
Run Code Online (Sandbox Code Playgroud)
目前,使用Json方法输出对象,返回:
[{"Name":"David"}, "Title":"Engineer"}, {"Name":"William", "Title":"Developer"}]
Run Code Online (Sandbox Code Playgroud)
现在,我意识到这个例子是超级简化的,我在这里做的唯一事情就是改变属性名称的大小,但在更高级的场景中,我可以将属性名称重新映射到其他东西......
System.Web.Script.Serialization包含一个ScriptIgnoreAttribute属性,但这只是告诉JavaScriptSerializer在序列化时忽略该属性,但似乎没有任何东西可以改变实际输出的名称或格式呢?
使用 JavaScript 序列化器 (.NET 2.0),不是真的……
使用 DataContractSerializer (.NET 4.0),是的。
请参阅
JavaScriptSerializer.Deserialize - 如何更改
您拥有的所有替代方案的字段名称。
当您准备好意识到内置序列化器并不是真正有用时,请使用 JSON.NET,添加对Newtonsoft.JSON 的引用,然后执行以下操作:
[JsonProperty(PropertyName = "FooBar")]
public string Foo { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3715 次 |
| 最近记录: |