我想转换我的API返回结果
{ "type": "animal" , "age": 3 }
进入
{ "myAnimal": [ "type": "cat", "age": 3 ] }
我试着做
var myAnimal = JsonConvert.SerializeObject(new { MyAnimal = originalResult });
并返回
然而,API返回类型设置为<IEnumerable<AnimalModel>
,而变量myAnimal
是JsonConvert
之后的字符串类型。所以这是一场冲突。
我仍然想归还IEnum,有什么可以让我做的吗?
提前谢谢!
您想要的json无效。但是,如果您想将对象转换为数组IMHO,最简单的方法是解析原始结果
var origAnimal = new { type = "animal", age = 3 };
var newAnimal = new JObject();
newAnimal["myAnimal"] = new JArray(JObject.FromObject(origAnimal).Properties()
.Select(jo => new JObject(jo)));
var json = newAnimal.ToString();
有效的json
{
"myAnimal": [
{
"type": "animal"
},
{
"age": 3
}
]
}
或者你可能需要这个json
var newAnimal = new JObject();
newAnimal["myAnimal"] = new JArray( JObject.FromObject(origAnimal));
var json = newAnimal.ToString();
json
{
"myAnimal": [
{
"type": "animal",
"age": 3
}
]
}
或者您已经访问了API,您将不得不将输入参数更改为JObject。在这种情况下,您不需要解析
public IActionResult MyApi(JObject myAnimal)
{
var newAnimal = new JObject();
newAnimal["myAnimal"] = new JArray(myAnimal.Properties().Select(jo => new JObject(jo)));
...
}