我正在寻找一种将动态JSON返回给用户的方法。 (就像在JavaScript中一样,您只需添加到JSON,无论您想要什么)
我想将数据结构更改为我正在使用的另一个数据结构convertAll
。
请看这里:
public dynamic SomeActionMethod()
{
return Test_Get(). /* List<someClass> */
ConvertAll(x =>
{
if (someConditionToCheckAgainst)
{
return new
{
subValue1 = x
};
}
else
{
return new
{
subValue2 = x
}
{
};
}
我收到以下错误:
List.ConvertAll(转换器)&#39;无法从使用中推断出来。尝试显式指定类型参数。
这里做什么?
答案 0 :(得分:0)
这不是最灵活的方法(请参阅JObject,Json.Net序列化指南),但这可以适用于您的示例:
public class Item
{
public int? month { get; set; }
public int? total { get; set; }
}
var intList = new List<int> { 4, 12 };
var resultList = intList.ConvertAll(r =>
{
if (r == 4)
{
return new Item { month = r };
}
else
{
return new Item { total = r };
}
});
var json = JsonConvert.Serialize(intList, Formatting.None,
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
请注意,month
和total
字段可以为空。使用指定设置进行序列化将不包括生成json的空字段。
Json将如下所示:[{ "month": 4 }, { "total": 12 }]