日期:2014-05-17  浏览次数:20421 次

如何解析这个json
 string jsonText = "{\"result\":\"success\",\"return\":{\"high\":{\"value\":\"46.50000\",\"value_int\":\"4650000\",\"display\":\"$46.50000\",\"display_short\":\"$46.50\",\"currency\":\"USD\"}}}";
            JavaScriptSerializer serializer = new JavaScriptSerializer();
           
            Dictionary<string, object> json = (Dictionary<string, object>)serializer.DeserializeObject(jsonText);

------解决方案--------------------
下一个 Newtonsoft.Json.dll 试试,很好用
------解决方案--------------------

{
    "result": "success",
    "return": {
        "high": {
            "value": "46.50000",
            "value_int": "4650000",
            "display": "$46.50000",
            "display_short": "$46.50",
            "currency": "USD"
        }
    }
}


格式化之后是这样的

构建下面的一个CLASS

class Info{
   public string value{get;set;}
public string value_int{get;set;}
public string display{get;set;}
public string display_short{get;set;}
public string currency{get;set;}
}


然后用这种类型去解析

Dictionary<string,Dictionary<string,Info>>


试试看 行不
------解决方案--------------------
貌似  不行  下班了 LZ朝着这种构造  格式 试试看  可能有点复杂,要多建几个实体类 不过应该是可以构造出来的
------解决方案--------------------
1楼已经回答了 
------解决方案--------------------


public string FromJson(string json)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        Dictionary<string, object> jsons = (Dictionary<string, object>)serializer.DeserializeObject(json);
        object value1;
        object sucess;
        string value1;
        if (jsons.TryGetValue("result", out sucess))//第一层
        {
            foreach (KeyValuePair<string, object> pair in jsons)//通过KeyValuePair
            {
                Dictionary<string, object> jsontemple = (Dictionary<string, object>)pair.Value;//第二层