我正在尝试读取原始JSON POST请求的值,并仅将传入的字段(键)名称转换为对象。
如果我发布了一个JSON字符串,例如:
{
"FirstName": "Test",
"LastName": "User",
"MiddleInitials": null
}
然后在从请求正文中读取输入流后,将JSON字符串转换为对象:
// Read the InputStream
StreamReader reader = new StreamReader(Request.Body);
reader.BaseStream.Position = 0;
string jsonText = reader.ReadToEnd();
// Deserialize to object and read property names
object jsonObject = JsonConvert.DeserializeObject(jsonText);
然后当我检查对象时,我看到以下内容: 我如何获取键值(FirstName,LastName,MiddleInitials)?
答案 0 :(得分:1)
NewtonSoft JSON库允许您使用泛型将JSON反序列化为特定类型,请查看this文档。如果JSON字符串与您尝试反序列化的对象不匹配,它也会抛出错误。
我偶尔会做的另一个选项是将JSON字符串反序列化为dynamic
而不是object
。它使您不必为您期望的每个响应创建一个类型。查看this question/answer以获取示例。