Как я могу преобразовать ArrayList / Set в JSON и опубликовать данные с помощью постфоръектного метода? - PullRequest
0 голосов
/ 14 января 2020

Я установил, который содержит строку ["a" , "b" , "c"], я хочу POST json данные как (разделенные запятой и одна строка) Вот

JSON

{"view" : "a,b,c",
"fruits" : "apple"}

до конечного использования метода Resttemplate postForObject? Я использовал GSON, но это не работает в моем проекте. Есть ли другие альтернативы?

Вот мой код

    private run(set<data> datas) {
            Set<string> stack = new hashset<>();
            iterator<data> itr = datas.iterator();
            while (itr.hasnext()) {
                data macro = itr.next();

                if (//some condition) {
                    stack.add(macro);

                        }
                    }
                }
            }
            Resttemplate.getmessageconverters().add(stringconvertor);
            String result = resttemplate.postforobject(endpoint, request, String.class);
}

1 Ответ

0 голосов
/ 14 января 2020

Если данные в указанном формате c класса, вы можете go с подходом POJO, который поощряется Spring Boot. Но, глядя на ваш пример, кажется, что вы хотите добиться однократного JSON отклика объекта.

import org.json.simple.JSONObject;    

public static void run(set<data> datas, string endpoint){    
  // build your 'stack' set
  String joined = String.join(",", stack);
  JSONObject obj=new JSONObject();    
  obj.put("view",joined);    
  obj.put("fruits","apple");    
  //return the jsonObject as the response to your entrypoint using your method     
}    

Можно также попробовать следующее, если вы используете аннотацию @ResponseBody в Spring Boot, которая преобразует Тело ответа в соответствующем (JSON) формате.

    HashMap<String, String> map = new HashMap<>();
    map.put("view", joined);
    map.put("fruits", "apple");
    return map;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...