【发布时间】:2018-05-18 15:29:57
【问题描述】:
我正在尝试读取原始 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)?
【问题讨论】:
-
用这三个属性创建一个类,然后反序列化该类的一个实例。
-
嗨@Amy 说清楚(对不起,如果我以前不是),情况是我只是想读取进来的键值,因为它们可能正确也可能不正确(匹配类)。例如,如果有人传入“FirstNaem”而不是“FirstName”,则在映射到类时该值将被忽略。
-
@kyle_13 这是一个重要的细节。我建议将其编辑到您的问题中。
-
@kyle_13 通常,当某些 JSON 与预期模型不匹配时,应该会导致 400 BAD REQUEST 错误。
标签: c# json asp.net-mvc