如何使用c#从字符串数组/字典中提取数字?

如何使用c#从字符串数组/字典中提取数字?,c#,json,string-parsing,C#,Json,String Parsing,我有一个字符串,它是一个字典数组的字符串 该格式的一个示例是: [{"id":1,"items":[5,8]},{"id":2,"items":[6]},{"id":3,"items":[7]}] (注:以上代码均为字符串) 这里是一个字典数组的字符串,它有两个键,第一个键的值是一个数字,第二个键的值是一个数字数组 使用c#(开箱即用程序集),如何迭代所有id值,然后迭代所有项数组值 所以我希望能有一个双循环。一种方法是遍历id并提取数字,然后每次迭代都需要遍历items数组的所有值 有人知道

我有一个字符串,它是一个字典数组的字符串

该格式的一个示例是:

[{"id":1,"items":[5,8]},{"id":2,"items":[6]},{"id":3,"items":[7]}]
(注:以上代码均为字符串)

这里是一个字典数组的字符串,它有两个键,第一个键的值是一个数字,第二个键的值是一个数字数组

使用c#(开箱即用程序集),如何迭代所有id值,然后迭代所有项数组值

所以我希望能有一个双循环。一种方法是遍历id并提取数字,然后每次迭代都需要遍历items数组的所有值

有人知道如何解析和提取数字吗

谢谢

输出如下(例如)

编辑:

我试过这个:

            string dataString = JSONValue.Text;
            JavaScriptSerializer jss = new JavaScriptSerializer();
            var json = new JavaScriptSerializer();
            var data = json.Deserialize<List<Dictionary<string, Object>>>(dataString);

            int sectionID;
            List<int> itemIDS;
            foreach (Dictionary<string, Object> dict in data)
            {
                sectionID = (int)dict["id"];
                itemIDS = (List<int>)dict["items"];
                ReportObject.log(sectionID.ToString());
                foreach (int itemID in itemIDS)
                {
                    ReportObject.log(itemID.ToString());
                }
            }

尝试获取string的int值,如果它是数组,则获取索引上的对象,并尝试使用
ToInt()
或将string对象强制转换为int。这两种方法都可以实现。

尝试此方法

using using System.Web.Script.Serialization;
var jsonStr = "[{\"id\":1,\"items\":[5,8]},{\"id\":2,\"items\":[6]},{\"id\":3,\"items\":[7]}]";
var json = new JavaScriptSerializer();
var data = json.Deserialize<List<dynamic>>(jsonStr);

然后
var data=json.Deserialize(jsonStr)

这就是JSON——您是在寻找解析它的方法,还是在解析它并寻找循环的方法?如果是前者,谷歌“C#JSON解析”,你会发现很多有用的信息,包括,这很好,不是JSON吗?你可以使用外部JSON库…我已经对它进行了字符串化,现在我在c#中得到了它的字符串,并希望在c#中从中提取整数。我希望在没有外部库的情况下实现这一点。有一个JSON库不是外部的,
JavaScriptSerializer
。命名空间动态未定义。您使用的是哪个.net framework,可从.net 4.0或更高版本获得。我更新了上面的答案,并收到一条错误消息。我使用的是.net 3.5。在这种情况下使用我的第二个选项,那么如何像我在示例中尝试的那样循环使用所有值?
(6/27/2013 12:02:04 AM) - Error Message: Unable to cast object of type 'System.Collections.ArrayList' to type 'System.Collections.Generic.List`1[System.Int32]'.
using using System.Web.Script.Serialization;
var jsonStr = "[{\"id\":1,\"items\":[5,8]},{\"id\":2,\"items\":[6]},{\"id\":3,\"items\":[7]}]";
var json = new JavaScriptSerializer();
var data = json.Deserialize<List<dynamic>>(jsonStr);
public class Info{
      public int Id { get; set; }
      public int[] Items { get; set; }
}