从接口取到的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);
        }
    }

  

这样,点击按钮就可以把数据全部导入到你的数据库表对应的字段内了;

 

posted @ 2017-10-13 16:42  魔兽IT  阅读(4063)  评论(0编辑  收藏  举报