2012-05-09 67 views
0

我有一些多維數組的php數組傳遞到我的c#應用程序。拉出來的值在C#的一面,我必須這樣做:將php數組轉換爲c#哈希表

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

我怎麼會去不再需要顯式轉換每個維度作爲哈希表?我是否需要一個遞歸函數來構建某種List對象,或者我應該不使用散列表?

+0

C#有一個JSON解析器?你可以使用結構化格式來交換數據? – dm03514

回答

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; 
    } 
+0

我不使用JSON,這似乎並沒有處理多維數組。 – Julien