从接口取到的JSON数据如何导入进本地SQL数据库
新手学习,求大神指点。
首先:在数据库建立表--设计字段(最好和接口说明文档里面的一致)
第一步:获取接口中的字符串:这里获取的是有转义字符的字符串
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream ResStream = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("utf-8"); StreamReader streamReader = new StreamReader(ResStream, encoding); string str = streamReader.ReadToEnd();
第二步:使用JsonReader读str字符串:获得没有转义字符的字符串;
string sJson=""; JsonReader reader = new JsonTextReader(new StringReader(str)); while (reader.Read()) { sJson = reader.Value.ToString(); }
第三步:将json字符串变为json对象(注意这里的GG,是第四步的类名)
var v = Newtonsoft.Json.JsonConvert.DeserializeObject<GG>(sJson);
第四步:根据接口的原始数据建立类(参考JSON数据序列化和反序列化):一般接口文档里会有说明
public class GG { public string code { get; set; } public string msg { get; set; } public string errPage { get; set; } public string errSize { get; set; } public INFO[] info { get; set; } } public class INFO { public int __hibernate_row_nr__ { get; set; } public string id { get; set; } public string XMBM { get; set; } public string XMMC { get; set; } }
第五步:这样就可以在C#中使用对象v的属性获取值信息
if (v != null){ if(v.info != null && v.info.Count>0){ //假如info为数组,里面是对象,则需要遍历数组 foreach (INFO i in v.info) {
string id = i.id; //这里就可以取到接口数据中的值了,随便你怎么用 } } }
第五步:分页数据处理:将上面的代码封装成一个方法getData(int 页数,int 最大条数)
//点击按钮循环封装方法:最大条数是1000,一共有65页 protected void btnSave_Click(object sender, EventArgs e) { for (int i = 1; i <= 65; i++) { getData(i,1000); } }
这样,点击按钮就可以把数据全部导入到你的数据库表对应的字段内了;
仅此杂文,留待后用。