如果您从Web api发送纯Json格式的非序列化文本,并使用jsonConvert.DeserializeObject函数在C#函数中对其进行反序列化?我有一个在云中创建Web api的同事,他发送的纯文本格式看起来像未序列化的Json,我尝试使用C#功能将其反序列化,但是当我尝试将发送的内容转换为Model类时,它将失败。我告诉他,必须使用C#JsonConvert.SerializeObject,否则它将无法正常工作。有人可以帮我澄清一下吗?
答案 0 :(得分:0)
您的同事是对的。 JSON字符串需要反序列化才能将它们变成对象。
此外,您所说的“纯文本格式看起来像JSON” 是JSON字符串。 JSON 是纯文本(在UTF8中,具有语法规则)。
比方说,您的程序中有一些要通过网络发送的数据结构。网络只能发送一系列字节,因此无论您的结构是什么,都需要将其转换为字节-您需要对其进行序列化。 JSON是一种实现方式,例如
'{"example": "some data"}'
是包含JSON的字符串。它是序列化的,只是通过网络发送的一串字节。
在接收端,您需要将其反序列化回到某种数据结构,某种类型的哈希映射或字典或可能在C#中调用的任何形式。
如果您尝试的操作“失败”,则可以提出一个更具体的问题,以显示您尝试使用哪些数据以及数据失败的确切程度。