2012-05-09 61 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