C# Can';t将JSON反序列化为对象
我正在我的程序中做一些测试,我想把APIGatewayProxyResponse转换成一个对象来访问它的值 下面是我的APIGatewayProxyResponse.Body(它是一个字符串)的示例:C# Can';t将JSON反序列化为对象,c#,asp.net,json,json-deserialization,C#,Asp.net,Json,Json Deserialization,我正在我的程序中做一些测试,我想把APIGatewayProxyResponse转换成一个对象来访问它的值 下面是我的APIGatewayProxyResponse.Body(它是一个字符串)的示例: "[{"date": "2020-03-06", "value": 35},{"date": "2020-03-09", "value": 233}]" 起初我想把它变成一个字典,但我意识到这可能是不可能的,因为字典有唯一的键值,而这里我有一个不唯一的“日期”和“值”属性 var dic = J
"[{"date": "2020-03-06", "value": 35},{"date": "2020-03-09", "value": 233}]"
起初我想把它变成一个字典,但我意识到这可能是不可能的,因为字典有唯一的键值,而这里我有一个不唯一的“日期”和“值”属性
var dic = JsonConvert.DeserializeObject<Dictionary<string, string>>(APIGatewayProxyResponse.Body);
但是也有同样的错误!我不明白,浏览器可以查看响应并识别它是JSON格式,那么为什么ASP.NET中不会发生同样的情况呢?因为JSON是一个数组,所以可以使用IEnumerable类型反序列化。
试试这个:
var dic = JsonConvert.DeserializeObject<IEnumerable<ResponseObject>>(APIGatewayProxyResponse.Body);
var dic=JsonConvert.DeserializeObject(APIGatewayProxyResponse.Body);
看看你的JSON,最外层的令牌类型是什么?对象或数组?List
应该可以工作,因为每个数组项中的键都是唯一的。但强类型对象的集合是最干净的。
var dic = JsonConvert.DeserializeObject<IEnumerable<ResponseObject>>(APIGatewayProxyResponse.Body);