我有一个Json示例
[{"_2":["HR Data","Reformed (Master File)"]}]
,我正试图将其反序列化为下面的模型
public class ExploreCriteria
{
public Dictionary<String, List<String>> Explore { get; set; }
}
这是我到目前为止所尝试的
ExploreCriteria Explore = new ExploreCriteria();
Explore = JsonConvert.DeserializeObject<ExploreCriteria>(JsonStr);
但是上面写着
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type
'DataModels.ExploreCriteria' because the type requires a JSON object
(e.g. {"name":"value"}) to deserialize correctly.
提供的JSON和您的ExploreCriteria
类没有描述相同的结构。
JSON结构是一个数组,其中包含一个带有数组值的键。所以你可以把方括号移到
{"_2":["HR Data","Reformed (Master File)"]}
则ExploreCriteria
是拟合的。或者您可以将JsonConvert调用更改为
var JsonStr = "[{"_2":["HR Data","Reformed(Master File)"]}]";
ExploreCriteria Explore = new ExploreCriteria();
var data = JsonConvert.DeserializeObject<IEnumerable<Dictionary<String, List<string>>>>(JsonStr);
Explore.Explore = data.FirstOrDefault();
List<KeyValuePair<string, List<string>>> uploadedfiles =
JsonConvert.DeserializeObject<List<KeyValuePair<string, List<string>>>>(json);
使用keyvaluepair类代替dictionary