【发布时间】:2015-12-15 22:38:46
【问题描述】:
我通过以下方式从数据库中获取 JSON
String DB_PATH = "/data/data/com.example.apps/databases/";
String myPath = DB_PATH + DBHelper.DATABASE_NAME;// Set path to your database
String myTable = DBHelper.TABLE_CONTACT;//Set name of your table
SQLiteDatabase myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
String searchQuery = "SELECT * FROM " + myTable;
Cursor cursor = myDataBase.rawQuery(searchQuery, null );
JSONArray json = 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 {
if(cursor.getString(i) != null) {
Log.d("TAG_NAME", cursor.getString(i));
rowObject.put(cursor.getColumnName(i), cursor.getString(i));
} else {
rowObject.put(cursor.getColumnName(i), "");
}
}
catch(Exception e) {
Log.d("TAG_NAME", e.getMessage());
}
}
}
json.put(rowObject);
cursor.moveToNext();
}
cursor.close();
Log.d("TAG_NAME_ALL", json.toString());
return json.toString();
JSON 输出正确,除了一个值 latlng。
我得到 - "latlng": "[12.3456789,98.7654321]"
需要得到-"latlng": [12.3456789,98.7654321]
如何摆脱双引号?
【问题讨论】:
-
cursor.getString(i)是一个字符串,因此被 json 格式化为一个字符串。你可以做的是new JSONArray(cursor.getString(i)) -
对于 latlng 的 getDouble 有多正确?