0

いくつかの多次元のphp配列がc#アプリに渡されています。C#側で値を引き出すには、次のようなことをする必要があります。

String example = (string)((Hashtable)((Hashtable)example_info["FirstLevel"])["SecondLevel"])["example_value"];

すべてのディメンションをハッシュテーブルとして明示的にキャストする必要をなくすにはどうすればよいですか?example_infoからある種のListオブジェクトを構築する再帰関数が必要ですか、それともハッシュテーブルを使用しないでください。

4

1 に答える 1

0

ここでは、これを使用します:

    public Dictionary<string, object> Parse(string array)
    { 
        Dictionary<string, object> result = new Dictionary<string, object>();
        Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(array);
        foreach (KeyValuePair<string, Newtonsoft.Json.Linq.JToken> kvp in obj)
        {
            if (kvp.Value.ToString().Contains('{'))
            {
                result.Add(kvp.Key, Parse(kvp.Value.ToString().Replace("[", "").Replace("]", "")));
            }
            else
            {
                result.Add(kvp.Key, kvp.Value.ToString());
            }
        }
        return result;
    } 
于 2012-05-09T18:49:32.833 に答える