cWi*_*ilk 4 .net c# json nested
我可以用c#轻松创建一个扁平的序列化JSON字符串
我的问题是我想在下面创建一个嵌套字符串
[ {
title: "Yes",
id : "1",
menu: [ {
title: "Maybe",
id : "3",
alert : "No",
menu: [ {
title: "Maybe Not",
id : "8",
alert : "No",
menu: []
} ]
} ]
},
{
title: "No",
id : "2",
menu: []
}]
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒
小智 13
你在使用MVC 3吗? - 做类似的事情:
return Json(myObectWithListProperties, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
我用它来返回与我想要的JavaScript对象的结构相匹配的复杂C#对象.
例如:
var bob = new {
name = "test",
orders = new [] {
new { itemNo = 1, description = "desc" },
new { itemNo = 2, description = "desc2" }
}
};
return Json(bob, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
得到:
{
"name": "test",
"orders": [
{
"itemNo": 1,
"description": "desc"
},
{
"itemNo": 2,
"description": "desc2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
编辑:更有趣的嵌套:
var bob = new {
name = "test",
orders = new [] {
new { itemNo = 1, description = "desc" },
new { itemNo = 2, description = "desc2" }
},
test = new {
a = new {
b = new {
something = "testing",
someOtherThing = new {
aProperty = "1",
another = "2",
theThird = new {
bob = "quiteDeepNesting"
}
}
}
}
}
};
return Json(bob, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
得到:
{
"name": "test",
"orders": [
{
"itemNo": 1,
"description": "desc"
},
{
"itemNo": 2,
"description": "desc2"
}
],
"test": {
"a": {
"b": {
"something": "testing",
"someOtherThing": {
"aProperty": "1",
"another": "2",
"theThird": {
"bob": "quiteDeepNesting"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用
using System.Web.Script.Serialization;
//Assumed code to connect to a DB and get data out using a Reader goes here
Object data = new {
a = reader.GetString(field1),
b = reader.GetString(field2),
c = reader.GetString(field3)
};
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string json = javaScriptSerializer.Serialize(data);
Run Code Online (Sandbox Code Playgroud)
这是内置的,可以节省您自己序列化为 JSON 的工作!
此示例假设您使用某种读取器从数据库中获取数据,然后使用匿名类构造要序列化的对象。您的匿名类可以根据您的需要简单或复杂,JavaScriptSerializer 将处理将其转换为 JSON。这种方法也很有用,因为您可以轻松控制它将在 JSON 中创建的 JSON 属性名称。
| 归档时间: |
|
| 查看次数: |
14707 次 |
| 最近记录: |