Java 转换列表<;MapObject>;进入JSONObject

Java 转换列表<;MapObject>;进入JSONObject,java,json,rest,Java,Json,Rest,我有一个RequestBodyObject列表,如下所示: List<RequestBodyObject> body = new ArrayList<>(); Map<String, String> requestBodyElements; private static JSONArray getJsonFromMap(Map<String, Object> map) { JSONObject jsonData = new JSONOb

我有一个
RequestBodyObject
列表,如下所示:

List<RequestBodyObject> body = new ArrayList<>();
Map<String, String> requestBodyElements;
private static JSONArray getJsonFromMap(Map<String, Object> map) {
    JSONObject jsonData = new JSONObject();
    for (String key : map.keySet()) {
        Object value = map.get(key);
        if (value instanceof Map<?, ?>) {
            value =  getJsonFromMap((Map<String, Object>) value);
        }
        jsonData.put(key, value);
    }
    JSONArray jsonArray = new JSONArray();
    jsonArray.add(jsonData);
    return jsonArray;
}
我正在创建HashMap,如下所示:

    HashMap<String, Object> params = new HashMap<>();
    
    Map<String, String> requestBodyElements = new HashMap<>();
    List<RequestBodyObject> body = new ArrayList<>();
    
    requestBodyElements.put("xyz", "abc");
    requestBodyElements.put("def", "pqr");
    
    RequestBodyObject requestBodyObject = new RequestBodyObject();
    requestBodyObject.setRequestBodyElements(requestBodyElements);
    body.add(requestBodyObject);
    
    params.put("key1", body);
    params.put("key2", "value2");
所需的JSONObject是:

{
   "format":"HTML",
   "requestBodyElements":[
    {
       "abc":"zyv",
       "def":"ghi"
     }]
  }
我的功能可以使其类似于:

{
   "format":"HTML",
   "requestBodyElements":
    {
       "abc":"zyv",
       "def":"ghi"
     }
  }

我需要将
requestBodyElements
转换为元素数组。非常感谢的任何帮助

有一个类JSONArray,它可以用来表示数组
[]
json值。我想你可以考虑使用它。代码可以如下所示:

List<RequestBodyObject> body = new ArrayList<>();
Map<String, String> requestBodyElements;
private static JSONArray getJsonFromMap(Map<String, Object> map) {
    JSONObject jsonData = new JSONObject();
    for (String key : map.keySet()) {
        Object value = map.get(key);
        if (value instanceof Map<?, ?>) {
            value =  getJsonFromMap((Map<String, Object>) value);
        }
        jsonData.put(key, value);
    }
    JSONArray jsonArray = new JSONArray();
    jsonArray.add(jsonData);
    return jsonArray;
}
private静态JSONArray getJsonFromMap(Map-Map){
JSONObject jsonData=新的JSONObject();
for(字符串键:map.keySet()){
对象值=map.get(键);
if(映射的值实例){
value=getJsonFromMap((Map)值);
}
jsonData.put(键,值);
}
JSONArray JSONArray=新的JSONArray();
jsonArray.add(jsonData);
返回jsonArray;
}

我想你需要JSONArray来完成这个任务。@sergey Vasnov:实际上我想要一个对象数组。任何代码片段,都非常欣赏您使用的Json库到底是什么?我使用的是org.Json.simple,但我可以灵活地使用任何其他类似GSON的代码