我有这样的类:
class Document
{
public string id {get;set;}
public string name {get;set;}
}
var doc = new Document() { id= "1", name = "Doc1" };
var docs = new List<Document>() { doc };
。
我正在通过 HTTP 帖子将文档发送到我的后端服务。
在我的控制器中,我以列表文档的形式接收它。
这样做的原因是,我想使用一个控制器来接受任何自定义类型。
问题是,列表文档中的每个项目都包装在额外的大括号中
"{{"id":"1", "name":"Doc1"}}"
- 如何防止额外的大括号?可以预防吗?
- 如果无法阻止,有没有办法额外删除额外的"{"和"}"的对象?
有一种叫做Newtonsoft.Json的东西。它有很多方法,如Serialize
和Deserialize
对象。检查链接。特别是当您向 API 发送值时,API 应该接受与您发送相同的内容。如果要发送列表,则 API 应在其参数中接受相同的类列表。如果您正在从 API 接收某些结果/您正在使用 API,则应反序列化结果中收到的字符串。为此,您可以使用 -:
- JObject,JToken
- Newtonsoft.Json.JsonConvert.Deserialize
序列化文档列表的实际输出为:
[{"id":"1","name":"Doc1"}]
外部[]
是一个数组,{id: number, name: string}
中的每个对象都是您的文档。
var doc = new Document { id = "1", name = "Doc1" };
var docs = new List<Document> { doc };
var result = Newtonsoft.Json.JsonConvert.SerializeObject(docs);
Console.WriteLine(result);