您的位置:首页 > Web前端 > JavaScript

C#,Json解析,Json遍历

2016-12-16 10:26 666 查看
1、作为一个level0的C#学习者,在学习过程中用到了Json,此文记载学习遍历的一些东西,自用。
2、先看用第三方接口,实现的汇率返回的json数据

{
"error_code":0,
"resultcode":"200",
"reason":"SUCCESSED!",
"result":[
{
"data1":{
"bankConversionPri":"695.0800",
"date":"2016-12-16",
"fBuyPri":"693.8400",
"fSellPri":"696.6200",
"mBuyPri":"688.1400",
"mSellPri":"696.6200",
"name":"美元",
"time":"10:10:03"
},
"data2":{
"bankConversionPri":"723.7200",
"date":"2016-12-16",
"fBuyPri":"722.0900",
"fSellPri":"727.1600",
"mBuyPri":"699.6000",
"mSellPri":"727.1600",
"name":"欧元",
"time":"10:10:03"
},
"data3":{
"bankConversionPri":"89.5800",
"date":"2016-12-16",
"fBuyPri":"89.3800",
"fSellPri":"89.7200",
"mBuyPri":"88.6600",
"mSellPri":"89.7200",
"name":"港币",
"time":"10:10:03"
},
"data4":{
"bankConversionPri":"5.8809",
"date":"2016-12-16",
"fBuyPri":"5.8633",
"fSellPri":"5.9044",
"mBuyPri":"5.6807",
"mSellPri":"5.9044",
"name":"日元",
"time":"10:10:03"
}
]
}
暂定这串Json为result1

3、目标,要求取出对应的数组后面所有的name,fBuyPri

4、解析如下

①引用Newtonsoft.Json第三方库

        ②逐层解析

③对于数组嵌套,取数组JArray jar = JArray.Parse(newObj1["result"].ToString());使用Jarry

⑤在通过JToken属性转化

⑤遍历数组,注意参数类型使用到K eyValuePair<Tkey,Tvalue>,

using Newtonsoft.Json;

JsonObject newObj1 = new JsonObject(result1);
JArray jar = JArray.Parse(newObj1["result"].ToString());
String errorCode1 = newObj1["error_code"].Value;
for(var i = 0; i < jar.Count; i++)
{
JToken js = JToken.Parse(jar[i].ToString());
foreach(KeyValuePair item in j)
{
JObject jts = JObject.Parse(item.Value.ToString());
foreach(KeyValuePair obj3 in jts)
{
DataRow row1 = dt.NewRow();
row1["外币"] = jts["name"].ToString()+"(1)";
row1["本币"] = "人民币(¥)";
if(jts["fBuyPri"].ToString() =="")
{
row1["汇率"] = float.Parse("0.000");
}
else
{
row1["汇率"] = float.Parse(jts["fBuyPri"].ToString())/100;
}
dt.Rows.Add(row1);
this.dataGridView1.DataSource = dt;
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json