如何迭代动态数组

时间:2017-01-08 10:59:05

标签: c# dynamic

我有以下json字符串

[{"field1":"1","field2":"2","field3":"3"}{"field1":"11","field2":"22","field3":"33"}{"field1":"111","field2":"222","field3":"333"}]

我使用以下代码来解析它 -

var jss = new JavaScriptSerializer();
dynamic data = jss.Deserialize<dynamic>(s);

如何迭代动态数据阵列?

2 个答案:

答案 0 :(得分:0)

using System.IO;
using System.Web.Script.Serialization;

namespace Deserialize
{
    class Program
    {
        static void Main()
        {
            string jsonString = File.ReadAllText("dynamic.json");

            var serializer = new JavaScriptSerializer();

            dynamic data = serializer.Deserialize<dynamic>(jsonString);

            foreach (var item in data)
            {
                foreach (var subitem in item)
                {
                    System.Console.WriteLine("Key={0}, Value={1}", subitem.Key, subitem.Value);
                }

                System.Console.WriteLine();
            }

            System.Console.ReadKey();
        }
    }
}

我需要添加逗号来分隔json文件中的3个对象才能使用...但我认为这是(大致)你所追求的。对不起,如果我误解了。

答案 1 :(得分:0)

我最终使用了以下代码。

List<myClass> l = JsonConvert.DeserializeObject<List<myClass>>(jsonString);

我没有问题迭代l。

myClass是一个带有字段定义的本地类,需要确保字段和类定义为public。

相关问题