将字符串列表转换为简单对象列表

时间:2016-01-31 09:33:39

标签: c# json asp.net-mvc linq

我需要将json传递给MVC中的控制器。我的方法返回一个字符串列表,然后将其转换为带有字符串数组的json。由于一些前端的复杂性,我应该将结果作为基本对象的数组返回,例如而不是["Item1", "Item2", "Item3"]等我需要通过[{item: "Item1"}, {item: "Item2"}, {item: "Item3"}]

我创造了一些有效的东西,但它需要大量的重复。我想知道是否已经有内置的东西,或者只是更好的逻辑来完成这些任务。

新的超级基础课程:

public class ObjectConverted
{
    public string item { get; set; }
}

转换器类:

public class Converter 
{ 
    public List<ObjectConverted> convertToObjects(IEnumerable<string> listOfStrings)
    {
        List<ObjectConverted> listConverted = new List<ObjectConverted>();
        foreach (string i in listOfStrings)
        {
            ObjectConverted oc = new ObjectConverted();
            oc.item = i;
            listConverted.Add(oc);
        }
        return listConverted;
    }
}

并将其传递给控制器​​,如:

public ActionResult Competitors()
{
    IEnumerable<string> strings = getItemStrings();
    Converter c = new Converter();
    List<ObjectConverted> objects = c.convertToObjects(strings);

    return Json(objects, JsonRequestBehavior.AllowGet);
}

1 个答案:

答案 0 :(得分:4)

如何将它转换为返回匿名类的linq?

public ActionResult Competitors()
{
    return Json(getItemStrings().Select(x => new { Item = x }), JsonRequestBehavior.AllowGet);
}