Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Как убрать кавычки в JSON?

#android #json #sqlite


У меня есть БД из нее получаю 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":"[54.601530521,55.918132215051]"

Нужно получить - "latlng":[54.601530521,55.918132215051]

Как избавиться от кавычек?
    


Ответы

Ответ 1



из комментарий и оригинал из stackoverflow.com Если вам нужно быстро перевести строку на double, хоть и с грязным кодом, тогда вы можете сделать так: String s = "[12.3456789,98.7654321]"; String trimmed = s.substring(1, s.length()-1); String[] parts = trimmed.split(","); double lat = Double.parseDouble(parts[0]); double lng = Double.parseDouble(parts[1]); Log.d("latlng", "lat="+lat+" lng="+lng); Это не красиво, но работает.

Комментариев нет:

Отправить комментарий