【发布时间】:2014-05-30 00:28:50
【问题描述】:
我有这个 json 值:
["67738","1","67742","1"]
我想解析C#中的值,对于每2个值,例如67738,1是两个字符串的一个字典项,然后67742和1是另一个字典项。
我正在尝试这样的事情:
var dict = new JavaScriptSerializer().Deserialize<Dictionary<object, object>>(modifiers);
使用该命令我收到此错误:
Type 'System.Collections.Generic.Dictionary`2[[System.Object, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],
[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089]]' is not supported for deserialization of an array.
我怎样才能让它工作?
编辑
这就是 JSON 的创建方式,也许我可以在这方面进行一些更改:
var jsonValueObj = [];
$("#modifiersDiv :checkbox:checked").each(function() {
jsonValueObj.push($(this).val(), $(this).attr('data-price'));
});
var jsonValueCol = JSON.stringify(jsonValueObj);
【问题讨论】:
-
你能改变json吗?
-
@RobA 请参考我的更新,谢谢
-
您提供的 JSON 不是键值对,因此不会反序列化为字典。您可以将 JSON 修改为键值对,也可以修改反序列化到的 C# 类型。
标签: c# asp.net asp.net-mvc json json.net