从C#中的原始JSON POST请求获取密钥名称

时间:2018-05-18 15:29:57

标签: c# json asp.net-mvc

我正在尝试读取原始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);

然后当我检查对象时,我看到以下内容: enter image description here 我如何获取键值(FirstName,LastName,MiddleInitials)?

1 个答案:

答案 0 :(得分:1)

NewtonSoft JSON库允许您使用泛型将JSON反序列化为特定类型,请查看this文档。如果JSON字符串与您尝试反序列化的对象不匹配,它也会抛出错误。

我偶尔会做的另一个选项是将JSON字符串反序列化为dynamic而不是object。它使您不必为您期望的每个响应创建一个类型。查看this question/answer以获取示例。