2017-02-18 29 views
0

Я хочу поместить все записи, хранящиеся в массиве JsonPost String, в Object с разными именами. код, который я пробовал, заключается в следующем.Как поместить строку с разными именами в Object with for loop

String[] JsonPost = request.getParameterValues("post[]"); 

    BasicDBObject postObj = new BasicDBObject(); 
     for(String str : JsonPost){ 

     postObj.put(str, str); 

     } 
    System.out.println(postObj); 

, например, если JsonPost = [ "Apple", "Апельсин"]

я получаю выход следующим образом.

{ "Apple" : [ "Apple"] , "Orange" : [ "Apple" , "Orange"]} 

, но я хочу получить выход следующим образом.

{ "Apple" : [ "Apple"] , "Orange" : ["Orange"]} 

Это поможет решить эту проблему.

+1

Можете ли вы опубликовать свой класс BasicDBObject? Вероятно, проблема есть. Кроме того, в качестве примечания стороны, имена переменных java являются обычно строчными, поэтому может быть предпочтительнее изменить «JsonPost» на «jsonPost», чтобы избежать путаницы с именами классов. – deathyr

+0

BasicDBObject - это объект, который используется в MongoDB. Просто рассмотрите это как объект. –

ответ

0

Там может быть проблема с объектом jsonPost, я просто попытался это:

String[] jsonPost = new String[] { "Apple", "Orange" }; 

    BasicDBObject postObj = new BasicDBObject(); 
    for (String str : jsonPost) { 

     postObj.put(str, str); 

    } 
    System.out.println(postObj); 

И выход был:

{ "Apple" : "Apple" , "Orange" : "Orange"} 

Можно ли печатать jsonPost?

+0

Да, я могу Печать jsonPost. но в моем случае я назначаю request.getParameterValues ​​(«post []»); путем захвата по запросу. Я смущен новой строкой [] {«Яблоко», «Оранжевый»}; пожалуйста помогите. –