我必须以json格式返回数据,但它说不能隐式地将类型字符串转换为system.collection.generic.list(object)。
[HttpGet]
public List<object> GetAllCompanies2()
{
List<object> myCo = DefCompany.AllDefCompany2;
// return myCo----------> works
string json = JsonConvert.SerializeObject(myCo);
return json; ------- > not works conversion error & i need this
}
我尝试了tostring()和许多其他方法,但没有任何效果。如何将字符串转换为对象?
这是我的功能代码AllDefCompany2
public static List<object> AllDefCompany2
{
get
{
using (var db = new RPDBEntities())
{
return db.DefCompanies.Select(b => new
{
Id = b.Id,
CurrentCurrencyCode = b.CurrentCurrencyCode,
ShortName = b.ShortName,
FullName = b.FullName,
ContactPerson = b.ContactPerson,
Address1 = b.Address1,
CompanyCity = b.CompanyCity,
CompanyState = b.CompanyState,
CompanyCountry = b.CompanyCountry,
ZipPostCode = b.ZipPostCode,
TelArea = b.TelArea
}).ToList<object>();
}
}
}
答案 0 :(得分:2)
此代码帮助我解决api和kendo问题
[HttpGet]
public List<object> GetAllCompanies2()
{
List<object> myCo = DefCompany.AllDefCompany2;
object json = JsonConvert.SerializeObject(myCo);
return json;
}
答案 1 :(得分:1)
这是配置设置
using System.Data.Entity;
namespace RpManticSolAPI
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
}
}
}
答案 2 :(得分:0)
return JsonConvert.SerializeObject(myCo);
答案 3 :(得分:0)
您可以将string
转换为object
,但您在显示的代码中尝试将其转换为List<object>
。您可以尝试在AsEnumerable
变量上调用ToList
或json
。
但是如果你想要做的是返回一个字符串,为什么不改变方法的返回类型呢?
答案 4 :(得分:0)
[HttpGet]
public string GetAllCompanies2()
{
List<object> myCo = DefCompany.AllDefCompany2;
// return myCo----------> works
string json = JsonConvert.SerializeObject(myCo);
return json; ------- > not works conversion error & i need this
}
试试这个。需要根据是否返回对象列表或字符串(在本例中为json)来更改函数返回类型