发素材的时间要上传资源故此要用json格式数据,需要转化。
微信服务器交互基本上都是json格式的文件,尤其是高级接口中的图片上传,故此转化json格式的字符串非常重要
把这样的json格式的字符串转化为结构获取具体的某一属性值
{
"total":196,"count":196,
"data":{
"openid":[
"o3Jevs5Db6rTj2G9J4_-jLzddmIc",
"o3Jevs_cVjKrRAlIwIFRqCmasRP4",
"o3Jevs9eM9ela-ykJC8lCkLaGhd8",
"o3Jevs6Nc9rf4KnGIfMSbb528HR8",
"o3JevsyDHt_c1S0FGbIwMh41-qz4",
]
},
"next_openid":"o3JevszVYwKeUzsGIMrdzdeWJOAc"
}
结构如下:
public struct GetOpenids
{
public int total { get; set; }
public int count { get; set; }
public getopenid data{get;set;}
public string next_openid { get; set; }
}
public struct getopenid
{
public string[] openid { get; set; }
}
用结构接收参数 就可以获取具体某一json里面的值
JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
GetOpenids jsonmy = js.Deserialize<GetOpenids>(returnStr); //将json数据转化为对象类型并赋值给list
int count = jsonmy.count;
这里获取值最好要用泛型
public class JsonClass<T>
{
public T GetJson(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
T t = js.Deserialize<T>(json); //将json数据转化为对象类型并赋值给list
return t;
}
}
这样可以重用代码用结构GetOpenids 用其他的只需改变<>里面的结构
JsonClass<GetOpenids> json = new JsonClass<GetOpenids>();