我在反序列化发送到 azure 函数的 JSON 时遇到一些问题。首先,我打算将一组密文类型的 post 发送到 azure,反序列化 JSON 以恢复我的数据,然后对该数据进行操作。我的类如下所示,sampleClass它有一个ciphertexttype属性Ciphertext:
[DataContract]
public class sampleClass
{
[DataMember]
public Ciphertext ciphertext { get; set; }
[JsonConstructor]
public sampleClass() { }
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试序列化/反序列化的类。
为了发布数据,我使用 HttpClient 并将其发布为 JSON,如下所示:
HttpResponseMessage response = await client.PostAsJsonAsync("api/Function1", cipher);
Run Code Online (Sandbox Code Playgroud)
在我的azure函数中,我尝试将Json作为流读取并将其反序列化为sampleClass[],但是这引发了错误。
//Receive data from The Http PostRequest.
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
//De serialises to an object.
sampleClass[] array = JsonConvert.DeserializeObject<sampleClass[]>(requestBody);
Run Code Online (Sandbox Code Playgroud)
抛出的错误如下所示:
执行“Function1”(失败,Id=1be7633e-6b6a-4626-98b7-8fec98eac633)[11/02/2020 15:50:48] System.Private.CoreLib:执行函数时出现异常:Function1。Newtonsoft.Json:无法找到用于 Microsoft.Research.SEAL.Ciphertext 类型的构造函数。类应该具有默认构造函数、带参数的构造函数或标有 JsonConstructor 属性的构造函数。路径“[0].ciphertext.CoeffModCount”,第 1 行,位置 32。
当我尝试反序列化 …