【发布时间】:2014-11-06 04:41:57
【问题描述】:
如何将对象列表转换为 JSON 字符串?
下面的代码只返回一个属性,People。如何为其添加多个属性?我一直在使用 JsonConvert 将对象更改为 JSON 格式。我会就如何做到这一点开放其他选项/意见。任何帮助将不胜感激!
想要的回应:
{"People":
{"Person":
{"FirstName":"Mike", "LastName":"Smith", "Age":"26"}
},
{"Person":
{"FirstName":"Josh", "LastName":"Doe", "Age":"46"}
},
{"Person":
{"FirstName":"Adam", "LastName":"Fields", "Age":"36"}
}
}
Person 类
public class Person
{
public string FirstName { get ;set; }
public string LastName { get ;set; }
public int Age { get ;set; }
}
处理逻辑
public JsonResult GetAllPeople()
{
List<Person> PersonList = new List<Person>();
String responseJSON = "";
foreach(string data in something){
//Some code to get data
Person p = new Person();
p.FirstName = data.FirstName ;
p.LastName = data.LastName
p.Age = data.Age;
responseJSON += new { Person = JsonConvert.SerializeObject(p) };
}
return Json(new { People = JsonConvert.SerializeObject(responseJSON ) }, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
您作为“想要的输出”发布的确切字符串不是有效的 JSON。它有一个属性标识符,后跟三个裸对象。
-
检查一下,它也可能对你有用:stackoverflow.com/questions/26547890/…
-
更好的方法是使用WebAPI,然后您只需返回
List<Person>,框架就会根据请求将其转换为Json(或Xml)。
标签: c# asp.net asp.net-mvc asp.net-mvc-5