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的代码