2016-05-12 4 views
-3

Я хочу преобразовать arraylist в объект json. Я нашел все в stackoverflow, но не смог получить ответ. Вот формат, который я хочу.Как преобразовать массивList <String> в объект json

$str = '{ 
"0": { 
    "product_name 2": "Johnson Baby (Soap)", 
    "product_total 1": "288"", 
    "product_quantity": "3" 
}, 
"1": { 
    "product_name 2": "Johnson Baby (Soap)", 
    "product_total 1": "288"", 
    "product_quantity": "3" 
} 
}'; 

Но я не могу этого достичь, потому что я получаю это так.

{ 
    "product_qtn": { 
     "Quantity 2": "4", 
     "Quantity 1": "3", 

    }, 
    "product_total": { 
     "Price1": "288", 
     "Price2": "112", 

    }, 
    "product_name": { 
     "Name3": "Johnson Baby (Soap)", 
     "Name2": "Johnson baby (powder)", 

    } 
} 

Я получаю данные от sqlite и храня в arraylist вот код.

 dataBase = mHelper.getWritableDatabase(); 
    mCursor = dataBase.rawQuery("SELECT * FROM " 
      + DBHelper.TABLE_NAME + " WHERE " + DBHelper.KEY_COUNT 
      + " IS NOT NULL AND " + DBHelper.KEY_COUNT + " != '0'", null); 
    product_price.clear(); 
    productprice = 0; 
    if (mCursor.moveToFirst()) { 
     do { 


      product_price.add(mCursor.getString(mCursor 
        .getColumnIndex(DBHelper.KEY_PRODUCT_TOTAL_PRICE))); 
      product_name.add(mCursor.getString(mCursor 
        .getColumnIndex(DBHelper.KEY_PNAME))); 
      product_quantity.add(mCursor.getString(mCursor 
        .getColumnIndex(DBHelper.KEY_COUNT))); 

     } while (mCursor.moveToNext()); 
    } 
+0

Я очень старался, чтобы найти, где вы создаете свой JSON, но 'я действительно пробовал много, но не смогли найти –

+0

нужно Оно деталь A.' восстановить свой ArraryList, а затем попробовать это http://stackoverflow.com/a/4842019/3981656 –

+1

Ничего, что вы показали, это массив JSON, потому что массив JSON использует '[' и ']'. То, что вы показываете в первом примере, это объект JSON с использованием числовых клавиш со значениями, которые также являются объектами JSON с 3 именованными ключами, поэтому в основном это «Map ». – Andreas

ответ

1

Попробуйте

 dataBase = mHelper.getWritableDatabase(); 
mCursor = dataBase.rawQuery("SELECT * FROM " 
     + DBHelper.TABLE_NAME + " WHERE " + DBHelper.KEY_COUNT 
     + " IS NOT NULL AND " + DBHelper.KEY_COUNT + " != '0'", null); 
product_price.clear(); 
productprice = 0; 

JSONObject Root = new JSONObject(); 
JSONArray productArray = new JSONArray(); 

if (mCursor.moveToFirst()) { 
    do { 
     JSONObject product = new JSONObject(); 
     /* 
     product_price.add(mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_PRODUCT_TOTAL_PRICE))); 
     product_name.add(mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_PNAME))); 
     product_quantity.add(mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_COUNT)));*/ 

     product.put("product_name", mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_PRODUCT_TOTAL_PRICE))); 

     product.put("product_total", mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_PNAME))); 

     product.put("product_quantity", mCursor.getString(mCursor 
       .getColumnIndex(DBHelper.KEY_COUNT))); 

     productArray.put(contact);   



    } while (mCursor.moveToNext()); 

     Root.put(productArray); 
} 
+0

Что такое контакт? – Nitesh

+0

Позвольте мне проверить это. – Nitesh

+0

Спасибо, что это помогло мне спасибо большое – Nitesh

0
JSONArray jsArray = new JSONArray(list); 

ИЛИ

Gson gson = new Gson(); 
String jsonArray = gson.toJson(list); 

GSON

0

Существует образец от Google gson documentation о том, как на самом деле преобразовать список JSon строку:

Type listType = new TypeToken<ArrayList<String>>() {}.getType(); 
ArrayList<String> target = new ArrayList<String>(); 
target.add("blah"); 

Gson gson = new Gson(); 
String json = gson.toJson(target, listType); 
ArrayList<String> target2 = gson.fromJson(json, listType); 

Вам нужно установить тип списка в методе toJson и передать объект списка, чтобы преобразовать его в строку json или наоборот.

Смежные вопросы