3 回答
TA贡献1836条经验 获得超5个赞
由于您已将 JSON 序列化设置配置为使用PreserveReferencesHandling.all,因此您的输出与您的预期有很大不同。例如:
var list = new List<int> { 1, 2, 3 };
var json1 = JsonConvert.SerializeObject(list);
var json2 = JsonConvert.SerializeObject(list,
new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.All });
将为您提供 JSON 输出的以下 2 种变体:
[1,2,3]
{"$id":"1","$values":[1,2,3]}
因此,您可以删除配置,或者,如果您专门想为此方法更改它,则必须手动进行转换,例如:
public string getTest()
{
List<int> test = new List<int>();
test.add(1);
return JsonConvert.SerializeObject(test);
}
TA贡献1890条经验 获得超9个赞
在 DotNet 中,您将始终获得复杂类型的元数据属性。
要清理 Json 结果,请添加 json 忽略属性,例如:
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles
TA贡献1856条经验 获得超11个赞
用这个。
[HttpGet, Route("getTest")]
public IHttpActionResult Get ()
{
return Ok(implementationClass.getTest()); // Returns an OkNegotiatedContentResult
}
- 3 回答
- 0 关注
- 124 浏览
添加回答
举报