如何从表中检索行并将该值设置为json数组并将该json数组作为返回值

时间:2016-08-12 05:13:55

标签: java android json sqlite

获取联系方式

   Cursor  cursor = db.rawQuery("SELECT * FROM "
                        + TB_AssessmentChooseValues.NAME + " where "
                        + TB_AssessmentChooseValues.CL_1_USER_ID + "='"+ userid +"' AND " 
                        + TB_AssessmentChooseValues.CL_2_BOOK_ID + "='"+ bookid +"' AND " 
                        + TB_AssessmentChooseValues.CL_3_CHAPTER_ID + "='" + chapterid +"' AND "
                        + TB_AssessmentChooseValues.CL_4_QUESTION_ID + "='" + questionid + "'",null);

    if(cursor.getCount() > 0) {
        cursor.moveToFirst();

        do {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("userid", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_1_USER_ID)));
            jsonObject.put("bookid", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_2_BOOK_ID)));
            jsonObject.put("chapterid", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_3_CHAPTER_ID)));
            jsonObject.put("questionid", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_4_QUESTION_ID)));
            jsonObject.put("optionid", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_5_OPTION_ID)));
            jsonObject.put("currentanswer", cursor.getString(cursor.getColumnIndex(TB_AssessmentChooseValues.CL_6_CURRENT_ANSWER)));
            array.put(jsonObject);
        } while(cursor.moveToNext());

        object .put("getchooseinfo",array);
    }
    cursor.close();
}
catch(Exception e)
{
    e.printStackTrace();
}

return object ;

检索json数组

> JSONObject  RetrievedChoose = rdb.getChooseContact(getContext(),userid, BookId ,chapter_idchoose ,question_idchoose); 
                         try {
                            JSONArray jsonMainArr = RetrievedChoose.getJSONArray("array");
                            Log.d("logchoose", "getsuccess"+jsonMainArr);
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } 

显示的错误是

 08-12 10:41:11.707: W/System.err(9253): org.json.JSONException: No value for array
 08-12 10:41:11.707: W/System.err(9253): org.json.JSONException: No value for array
 08-12 10:41:11.707: W/System.err(9253):    at org.json.JSONObject.getJSONArray(JSONObject.java:584)
 08-12 10:41:11.707: W/System.err(9253):    at com.aeldata.eduflex.fragment.DoublePageFragment$MyWebChromeClient.onJsAlert(DoublePageFragment.java:549)
 08-12 10:41:11.707: W/System.err(9253):    at com.android.webview.chromium.WebViewContentsClientAdapter.handleJsAlert(WebViewContentsClientAdapter.java:805)
 08-12 10:41:11.707: W/System.err(9253):    at org.chromium.android_webview.AwContentsClientBridge.handleJsAlert(AwContentsClientBridge.java:232)
 08-12 10:41:11.707: W/System.err(9253):    at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
 08-12 10:41:11.708: W/System.err(9253):    at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:39)

2 个答案:

答案 0 :(得分:3)

    public JSONArray cur2Json(Cursor cursor) {

JSONArray resultSet = new JSONArray();
cursor.moveToFirst();
while (cursor.isAfterLast() == false) {
    int totalColumn = cursor.getColumnCount();
    JSONObject rowObject = new JSONObject();   
    for (int i = 0; i < totalColumn; i++) {
        if (cursor.getColumnName(i) != null) {
            try {
                rowObject.put(cursor.getColumnName(i),
                        cursor.getString(i));
            } catch (Exception e) {
                Log.d(TAG, e.getMessage());
            }
        }
    }
    resultSet.put(rowObject);
    cursor.moveToNext();
}

cursor.close();
return resultSet;

    }

将光标结果作为参数传递,它将返回json

答案 1 :(得分:-1)

public ArrayList<ViewPeopleBean> GetSpecificPersonTransaction(String Name) {
    ArrayList<ViewPeopleBean> list = new ArrayList<ViewPeopleBean>();
    list.clear();
    SQLiteDatabase database = this.getWritableDatabase();
    String selectQuery = ("select * from AddNewPerson where Name ='" + Name + "'");
    Cursor cursor = database.rawQuery(selectQuery, null);
    ViewPeopleBean bean;
    if (cursor.moveToFirst()) {

        while (cursor.isAfterLast() == false) {
            bean = new ViewPeopleBean();
            bean.id = cursor.getString(cursor.getColumnIndex("NU_id"));
            bean.Name = cursor.getString(cursor.getColumnIndex("Name"));
            bean.Amount = cursor.getString(cursor.getColumnIndex("Amount"));
            bean.Description = cursor.getString(cursor
                    .getColumnIndex("Description"));
            bean.Status = cursor.getString(cursor.getColumnIndex("Status"));

            bean.datetime = cursor.getString(cursor
                    .getColumnIndex("DateandTime"));
            list.add(bean);
            cursor.moveToNext();
        }
    }
    cursor.close();
    return list;
}