map转JSONArray
时间: 2023-11-17 17:03:37 浏览: 71
将Map转换为JSONArray的步骤如下:
1. 首先,创建一个空的JSONArray对象。
2. 遍历Map中的每个键值对,将每个键值对转换为JSONObject对象。
3. 将每个JSONObject对象添加到JSONArray对象中。
4. 最后,将JSONArray对象转换为JSON字符串。
下面是Java代码示例:
```java
Map<String, String> map = new HashMap<>();
map.put("name", "John");
map.put("age", "30");
JSONArray jsonArray = new JSONArray();
for (Map.Entry<String, String> entry : map.entrySet()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put(entry.getKey(), entry.getValue());
jsonArray.put(jsonObject);
}
String jsonString = jsonArray.toString();
```
相关问题
map 如何转jsonarray
要将 Map 转换为 JSONArray,你需要按照以下步骤进行操作:
1. 创建一个空的 JSONArray 对象。
2. 迭代 Map 中的每个键值对。
3. 对于每个键值对,创建一个 JSONObject 对象,并将键值对的键和值作为属性添加到 JSONObject 中。
4. 将 JSONObject 添加到 JSONArray 中。
5. 最后,将 JSONArray 转换为字符串形式的 JSON。
以下是一个示例代码,展示了如何将 Map 转换为 JSONArray:
```java
import org.json.JSONArray;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
// 创建一个示例的 Map 对象
Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
// 将 Map 转换为 JSONArray
JSONArray jsonArray = new JSONArray();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put(entry.getKey(), entry.getValue());
jsonArray.put(jsonObject);
}
// 输出 JSONArray
System.out.println(jsonArray.toString());
}
}
```
JSONArray jsonArray 转 map
要将JSONArray jsonArray转换为Map,有三种方法可以选择:
第一种方法是使用toJavaList方法将JSONArray转换为List<JSONObject>,然后使用stream和collectors.toMap方法将List转换为Map。具体代码如下:
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
List<JSONObject> jsonObjectList = jsonArray.toJavaList(JSONObject.class);
Map<Integer, String> map = jsonObjectList.stream().filter(Objects::nonNull).collect(Collectors.toMap(item -> item.getInteger("flagType"), item -> item.getString("flagIcon")));
第二种方法是先创建一个空的HashMap<Integer, String>,然后使用forEach方法遍历JSONArray,将每个JSONObject中的flagType和flagIcon添加到HashMap中。具体代码如下:
Map<Integer, String> flagIconMap = new HashMap<>();
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
if (jsonArray != null && !jsonArray.isEmpty()) {
jsonArray.forEach(object -> {
if (object == null) {
return;
}
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.getInteger("flagType") == null) {
return;
}
flagIconMap.put(jsonObject.getInteger("flagType"),jsonObject.getString("flagIcon"));
});
}
第三种方法是使用stream和collectors.toMap方法直接将JSONArray转换为Map。具体代码如下:
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略
Map<Integer, String> map = jsonArray.stream().filter(Objects::nonNull)
.collect(Collectors.toMap(
object -> {
JSONObject item = (JSONObject) object;
return item.getInteger("flagType");
},
object -> {
JSONObject item = (JSONObject) object;
return item.getString("flagIcon");
}
));
以上是三种将JSONArray jsonArray转换为Map的方法,你可以根据自己的需求选择其中一种方法来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [JSONArray转Map的三种实现方式](https://blog.csdn.net/weixin_43075027/article/details/109533803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文