首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么解析这个json

2013-03-17 
如何解析这个json string jsonText {\result\:\success\,\return\:{\high\:{\value\:\46.50

如何解析这个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;//第二层


                jsontemple.TryGetValue("high", out value1);
                //Response.Write(value1);
            }
        }
        else
        {
            result = "失败了";
        }
        return result;
    }


[解决办法]
你这好像有三层,以此类推就好了
[解决办法]
引用:
引用:
你这好像有三层,以此类推就好了运行部了啊,还是取不到啊


该引用的都引用了吗 using ......
第一层能取到吗? result的值
[解决办法]
serializer.DeserializeObject(jsonText);这个解析出来的东西,你可以用两个类做标识啊,第一个类就是大节点的,第二个就是二级节点的,然后获取属性值就OK了。LZ试试
[解决办法]
貌似已经有了类似的帖子了,我也回过了
[解决办法]
改好了
public string FromJson(string json)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        Dictionary<string, object> jsons = (Dictionary<string, object>)serializer.DeserializeObject(json);
        object value1;
        object value2;
        object sucess;
        string result="";
        if (jsons.TryGetValue("return", out sucess))
        {
            

                //Response.Write();
                Dictionary<string, object> jsontemple = (Dictionary<string, object>)sucess;
                jsontemple.TryGetValue("high", out value1);
foreach (KeyValuePair<string, object> pair2 in jsontemple)
{
Dictionary<string, object> jsontemple2 = (Dictionary<string, object>)pair2.Value;
jsontemple2.TryGetValue("value", out value1);
jsontemple2.TryGetValue("value_int", out value2);
Response.Write(value1+"__"+value2);
}
        }
        else
        {
            result = "";
        }
        return result;
    }

测试的是你前两个值

热点排行