Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android上的SQLite中存储JSON对象_Java_Json_Sqlite - Fatal编程技术网

Java 如何在Android上的SQLite中存储JSON对象

Java 如何在Android上的SQLite中存储JSON对象,java,json,sqlite,Java,Json,Sqlite,这是我的SQLite代码 public class CategoryHelper { private static final int DATABASE_VERSION = 2; private static final String DATABASE_NAME = "category.db"; private static final String TABLE_NAME = "tbcategory"; private static final String K

这是我的SQLite代码

public class CategoryHelper {

    private static final int DATABASE_VERSION = 2;
    private static final String DATABASE_NAME = "category.db";
    private static final String TABLE_NAME = "tbcategory";
    private static final String KEY_ID = "_id";
    private static final String KEY_NAME = "_name";
    private static final String KEY_AGE = "_age";
    // private static final String EMAIL = "_email";
    private static final String GENDER = "_gender";

    /*
     * private static final String email = "email"; private static final String
     * gender = "gender";
     */

    // http://stackoverflow.com/questions/17441031/want-to-insert-json-data-into-the-sqlite-database

    Category openHelper;
    private SQLiteDatabase database;

    public CategoryHelper(Context context) {
        openHelper = new Category(context);
        database = openHelper.getWritableDatabase();
    }

    public void saveCategoryRecord(String id, String name, String age,
            String gender) {
        try {

            ContentValues contentValues = new ContentValues();
            contentValues.put(KEY_ID, id);
            contentValues.put(KEY_NAME, name);
            contentValues.put(KEY_AGE, age);
            // contentValues.put(EMAIL,m.getEmail());

            contentValues.put(GENDER, gender);

            database.insert(TABLE_NAME, null, contentValues);

        } catch (Exception e) {
            // TODO: handle exception
            Log.e("problem", e + "");
        }
    }

    public Cursor getTimeRecordList() {
        return database.rawQuery("select * from " + TABLE_NAME, null);
    }

    private class Category extends SQLiteOpenHelper {

        public Category(Context context) {
            // TODO Auto-generated constructor stub
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            db.execSQL("CREATE TABLE " + TABLE_NAME + "( " + KEY_ID
                    + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME
                    + " TEXT NOT NULL, " + GENDER + " TEXT NOT NULL, "
                    + KEY_AGE + " TEXT + )");
            Log.d("name", TABLE_NAME.toString());

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
            db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
            onCreate(db);
        }
    }
}
这是我的主要活动

    @Override
    protected List<getsetclass> doInBackground(String... urls) {
        try {


            HttpGet httppost = new HttpGet("https://infograins.com/INFO01/socialpad/api.php?action=searchuser&userid=109&lat=22.6858623&long=75.8597824");

            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httppost);

            // StatusLine stat = response.getStatusLine();
            int status = response.getStatusLine().getStatusCode();

            if (status == 200) {
                HttpEntity entity = response.getEntity();
                String data = EntityUtils.toString(entity);

                JSONObject jsono = new JSONObject(data);
                JSONArray jarray = jsono.getJSONArray("Searchuser");//get json array
                //Log.e("jarray", jarray.toString());

                  List<getsetclass> mpojo = new Vector<getsetclass>();// put getset class into listview 
                    for (int i = 0; i < jarray.length(); i++) {//convert one by one and stored in json object 
                    JSONObject object = jarray.getJSONObject(i);

                     String email = object.getString("email");//get json object
                     //Log.w("email",email.toString());
                     String name = object.getString("fullname");
                     Log.e("name",name.toString());

                     String gender = object.getString("gender");
                     //Log.e("gender",gender.toString());
                     String age = object.getString("age");
                   //  Log.e("age",age.toString());
                     String id=object.getString("userid");
                    String image=object.getString("image1");
                   Log.w("image", image.toString());
                   Log.d("bhjs--+______________------_-_","jgfjgfsjfs");




                     getsetclass m=new getsetclass(email, gender, name, age, image, id);
                     m.setAge(age);
                     m.setGender(gender);
                     m.setFullname(name);
                     m.setEmail(email);
                     m.setId(id);
                     m.setImage(image);
                     database.saveCategoryRecord(id,name,age,gender);
                        gs.add(m);}
                return mpojo;

            }

您是否在不增加数据库版本的情况下更改了数据库?我解决了这些错误,但json数据没有存储在sqlite中…一切正常log cat中没有错误,但数据没有存储在我的DBMS包名中…有人能帮我吗??
11-03 07:48:41.848: E/SQLiteLog(5395): (1) table tbcategory has no column named _gender
11-03 07:48:41.848: E/SQLiteDatabase(5395): Error inserting _name=Apeksha Sharma _id=94 _age=23 _gender=Female
11-03 07:48:41.848: E/SQLiteDatabase(5395): android.database.sqlite.SQLiteException: table tbcategory has no column named _gender (code 1): , while compiling: INSERT INTO tbcategory(_name,_id,_age,_gender) VALUES (?,?,?,?)
11-03 07:48:41.848: E/SQLiteDatabase(5395):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
11-03 07:48:41.848: E/SQLiteDatabase(5395):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
11-03 07:48:41.848: E/SQLiteDatabase(5395):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)