fastjson合并json数组中相同的某个元素

本文介绍了一种在Java中合并重复ID的JSON数组的方法,通过使用HashMap来存储具有相同ID的JSONObject,然后将具有相同ID的对象的特定数组字段进行合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @param array JSON数组
* @param array 需合并后的某个元素名
 */
private static JSONArray mgreArray(JSONArray array, String arrayname) {
        Map<Integer, JSONObject> map = new HashMap<>();
        for (int i = 0; i < array.size(); i++) {
            JSONObject jsonObject = array.getJSONObject(i);
            Integer id = jsonObject.getIntValue("id"); //合并的条件值
            if (map.containsKey(id)) {
                JSONObject tmp = map.get(id);
                JSONArray detailList = tmp.getJSONArray(arrayname);
                detailList.addAll(jsonObject.getJSONArray(arrayname));
            } else {
                map.put(id, jsonObject);
            }
        }
        JSONArray newArray = new JSONArray();
        newArray.addAll(map.values());
        return newArray;
}

 

转载于:https://www.cnblogs.com/codechange/p/10255263.html

在不编程语言中向JSON对象添加元素的方法各有不,但通常都提供了简洁直观的语法或方法。以下是几种常见编程语言中向JSON对象添加元素的方式: ### JavaScript 在JavaScript中,JSON对象本质上是一个对象,可以通过直接赋值或使用内置方法来添加元素。 ```javascript // 创建一个JSON对象 let jsonObj = { name: "Alice" }; // 添加新的键值对 jsonObj.age = 25; jsonObj["city"] = "Beijing"; console.log(jsonObj); // 输出: { name: "Alice", age: 25, city: "Beijing" } ``` 此外,JavaScript还提供了`Object.assign()`方法来合并对象,从而实现添加元素的效果[^5]。 ### Python Python中通常使用字典来表示JSON对象,可以通过直接赋值或使用`update()`方法来添加元素。 ```python # 创建一个字典(JSON对象) json_obj = { "name": "Alice" } # 添加新的键值对 json_obj["age"] = 25 json_obj.update({"city": "Beijing"}) print(json_obj) # 输出: {'name': 'Alice', 'age': 25, 'city': 'Beijing'} ``` Python的`json`库可以将字典转换为JSON格式的字符串,便于存储或传输[^3]。 ### JavaJava中,通常使用第三方库如`org.json`或`com.alibaba.fastjson`来处理JSON数据。以下是一个使用`org.json`库的示例: ```java import org.json.JSONObject; public class Main { public static void main(String[] args) { // 创建一个JSON对象 JSONObject jsonObj = new JSONObject(); jsonObj.put("name", "Alice"); // 添加新的键值对 jsonObj.put("age", 25); jsonObj.put("city", "Beijing"); System.out.println(jsonObj.toString()); // 输出: {"name":"Alice","age":25,"city":"Beijing"} } } ``` `JSONObject`类提供了`put`方法用于添加或更新键值对[^5]。 ### C++ 在C++中,通常使用第三方库如`nlohmann/json`来处理JSON数据。以下是一个使用该库的示例: ```cpp #include <iostream> #include <nlohmann/json.hpp> using json = nlohmann::json; int main() { // 创建一个JSON对象 json jsonObj = { {"name", "Alice"} }; // 添加新的键值对 jsonObj["age"] = 25; jsonObj["city"] = "Beijing"; std::cout << jsonObj.dump(4) << std::endl; // 输出: // { // "name": "Alice", // "age": 25, // "city": "Beijing" // } } ``` `nlohmann/json`库提供了一种非常直观的方式来操作JSON对象,支持直接赋值和嵌套结构[^2]。 ### PHP 在PHP中,可以使用关联数组来表示JSON对象,并通过`json_encode()`函数将其转换为JSON格式的字符串。 ```php <?php // 创建一个关联数组JSON对象) $jsonObj = array( "name" => "Alice" ); // 添加新的键值对 $jsonObj["age"] = 25; $jsonObj["city"] = "Beijing"; echo json_encode($jsonObj, JSON_PRETTY_PRINT); // 输出: // { // "name": "Alice", // "age": 25, // "city": "Beijing" // } ?> ``` PHP的`json_encode()`函数可以将关联数组转换为格式化的JSON字符串,便于输出或存储[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值