在C#中解析不规则数组

3
我正在连接一个使用Apache Axis和SOAP 1.2实现的外部Web服务。该Web服务返回一个类似下面的不规则对象数组。查看XML,我有xsi:type="soapenc:Array"。
在C#2和C#3中,最干净/最好的解析此数组的方法是什么?(我特别关注C#2,因此C#3解决方案只是为了兴趣。)
- obj object[] {object[][]}
-[0] object {object[]} -[0] object {string} -[1] object {string}
-[1] object {object[]} -[0] object {string} -[1] object {bool}
-[2] object {object[]} -[0] object {string} -[1] object {object[]} -[0] object {object[][]} -[0] object[] -[0] object{string} -[1] object{string)

你现在有什么(代码)了? - user113476
你想将它解析成什么?你提到了xml - 你有一些示例数据和期望的输出吗? - Marc Gravell
1个回答

1

不确定什么是最佳实践,但这是一种你可以做的方法。只需要测试对象是否为数组,如果是,则使用其可枚举接口。递归检查每个数组项。

    _array = new object[3];
    _result = new StringBuilder();

    //Populate array here

    foreach (object item in _array)
    {
         ParseObject(item);
    }


    private void ParseObject(object value)
    { 
        if (value.GetType().IsArray)
        {
            IEnumerable enumerable = value as IEnumerable;

            foreach (object item in enumerable)
            {                    
                ParseObject(item);
            }                
        }
        else
        {
            _result.Append(value.ToString() + "\n");
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接