【发布时间】:2021-10-28 14:29:12
【问题描述】:
我有一个名为的 Web API 方法
GetDetails(int id, string Name, string country)
在 API 中,我需要获取 id 值进行验证,我正在尝试使用以下代码获取原始 JASON,
using (var reader = new StreamReader(context.Request.Body))
{
var body = reader.ReadToEndAsync();
}
我在变量主体中低于原始数据,如下所示
{"query":"query\n{\n\n GetDetails(id:1234,Name:"lolo",country:"US" { }\n \n}\n"}
我正在尝试使用以下代码对字符串进行反序列化
using (var reader = new StreamReader(context.Request.Body))
{
var body = reader.ReadToEndAsync();
string[] theJson = JsonConvert.DeserializeObject<string[]>(body.Result.ToString());
}
我尝试了以下,
IEnumerable<string> strings = JsonConvert.DeserializeObject<IEnumerable<string>>(body.Result.ToString());
我遇到了一个异常:
Newtonsoft.Json.JsonReaderException:解析值时遇到意外字符:S. 路径'',第 0 行,位置 0。 在 Newtonsoft.Json.JsonTextReader.ParseValue() 在 Newtonsoft.Json.JsonReader.ReadAndMoveToContent() 在 Newtonsoft.Json.JsonReader.ReadForType(JsonContract 合同,布尔 hasConverter) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 阅读器,类型 objectType,布尔 checkAdditionalContent) 在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型类型,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值)
如何从上述原始 Json 中获取 id,感谢您的指导。
【问题讨论】:
标签: json asp.net-core httpcontext