解析json并插入数据库

来源:互联网 发布:黄药师软件使用方法 编辑:程序博客网 时间:2024/05/29 16:15


public class UserDao {    private final SQLiteDatabase db;    private static final String TABLE_NAME = "user";    public UserDao(Context context) {        Sqlite sqlite = new Sqlite(context);        db = sqlite.getWritableDatabase();    }    public  void  add(List<Bean.ResultBean.DataBean.StepsBean> steps) {        for (int i = 0; i < steps.size(); i++) {            ContentValues values = new ContentValues();            values.put("step", steps.get(i).getStep());            db.insert(TABLE_NAME, null, values);        }    }}

public class MainActivity extends AppCompatActivity {    private UserDao dao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        dao = new UserDao(this);        getData("http://apis.juhe.cn/cook/query.php");    }    private  void getData(String path){        new AsyncTask<String, Void, String>() {            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                System.out.println("onPostExecute");                if (s==null)                    return;                Gson gson=new Gson();                Bean bean = gson.fromJson(s, Bean.class);                List<Bean.ResultBean.DataBean.StepsBean> steps = bean.getResult().getData().get(0).getSteps();                dao.add(steps);            }            @Override            protected String doInBackground(String... params) {                System.out.println("doInBackground");                try {                    String path=params[0];                    URL url=new URL(path);                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("POST");                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);//                    http://apis.juhe.cn/cook/query.php?key=bd4b48ad4fc5d1b1664db0b5ca471451&menu=%E7%A7%98%E5%88%B6%E7%BA%A2%E7%83%A7%E8%82%89                    OutputStream os=connection.getOutputStream();                    os.write(("key=bd4b48ad4fc5d1b1664db0b5ca471451&menu="+ URLEncoder.encode("秘制红烧肉","utf-8")).getBytes());                    os.flush();                    int code=connection.getResponseCode();                    if (code==200){                        InputStream is=connection.getInputStream();                        String json= ReadFile.readfromFile(is);                        System.out.println("============"+json);                        return  json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return null;            }        }.execute(path);    }}