【问题标题】:Parse JSON response in C# for each 2 records在 C# 中为每 2 条记录解析 JSON 响应
【发布时间】: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);

【问题讨论】:

  • 检查这是否有帮助stackoverflow.com/questions/1207731/…
  • 你能改变json吗?
  • @RobA 请参考我的更新,谢谢
  • 您提供的 JSON 不是键值对,因此不会反序列化为字典。您可以将 JSON 修改为键值对,也可以修改反序列化到的 C# 类型。

标签: c# asp.net asp.net-mvc json json.net


【解决方案1】:

试试这个:

var jsonValueObj = [];
        $("#modifiersDiv :checkbox:checked").each(function() {
            var v = {};
            v.value = $(this).val();
            v.price = $(this).attr('data-price');
            jsonValueObj.push(v);
        });
       var jsonValueCol = JSON.stringify(jsonValueObj);'

这应该给你一个元组数组 在另一端

编辑:

您还可以创建一个自定义类(价值和价格)的列表,然后对其进行 JSON 解密。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多