JAVA 8 流处理JSON使用小记

  1. 用java8 把List 转成List
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> stringList = List.of("1", "2", "3", "4", "5");

        // 将List<String>转换为List<Long>
        List<Long> longList = stringList.stream()
                                        .map(Long::parseLong)
                                        .collect(Collectors.toList());

        // 输出转换后的List<Long>
        System.out.println(longList);
    }
}

  1. { “id”:[“11”,“22”], “isAnswer”:“xxx”} 怎么用fastjson把id解析出来
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String json = "{\"id\":[\"11\",\"22\"],\"isAnswer\":\"xxx\"}";

        // 解析JSON字符串
        JSONObject jsonObject = JSONObject.parseObject(json);

        // 使用Java 8 Stream API提取"id"字段的值,并转换为List<Long>
        List<Long> idList = jsonObject.getJSONArray("id").stream()
                .map(Object::toString)
                .map(Long::parseLong)
                .collect(Collectors.toList());

        // 输出转换后的List<Long>
        System.out.println(idList);
    }
}


  1. JSONArray jsonArray = JSON.parseArray(answer);
    怎么把json数组里面key为name的数据用java8 抽取出来
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String answer = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":35}]";

        // 解析JSON数组
        JSONArray jsonArray = JSONArray.parseArray(answer);

        // 使用Java 8 Stream API抽取具有特定键的数据
        List<String> names = jsonArray.stream()
                .map(obj -> (JSONObject)obj)
                .filter(obj -> obj.containsKey("name"))
                .map(obj -> obj.getString("name"))
                .collect(Collectors.toList());

        // 输出提取出的名字列表
        System.out.println(names);
    }
}

  1. {
    “name”:“1”,
    “preferences”:“2”,
    “userPic”:“3”,
    “demonstrations”:“4”,
    “tonality”:“5”,
    “attributes”:“6”,
    “strategy”:“7”,
    “path”:“8”,
    “monetization”:“9”,
    “method”:0,
    “position”:1,
    “operational”:1,
    “portrait”:0,
    “monMethod”:1,
    “logo”:“http://bigdata-oss.netinnet.cn/dev/nin_ecvo/cdn/static/upload/ecvo/cover/956908701099511808.jpg?Expires=4699872000&OSSAccessKeyId=LTAI5tE54ZPZqnX1vRU1xEju&Signature=4CAiUDFb5sWZwhOTNlycTwbeqI8%3D”
    } java 怎么把json里面 value为数字类型的去除掉
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"1\",\"preferences\":\"2\",\"userPic\":\"3\",\"demonstrations\":\"4\",\"tonality\":\"5\",\"attributes\":\"6\",\"strategy\":\"7\",\"path\":\"8\",\"monetization\":\"9\",\"method\":0,\"position\":1,\"operational\":1,\"portrait\":0,\"monMethod\":1,\"logo\":\"http://bigdata-oss.netinnet.cn/dev/nin_ecvo/cdn/static/upload/ecvo/cover/956908701099511808.jpg?Expires=4699872000&amp;OSSAccessKeyId=LTAI5tE54ZPZqnX1vRU1xEju&amp;Signature=4CAiUDFb5sWZwhOTNlycTwbeqI8%3D\"}";

        // 解析JSON字符串为JSONObject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);

        // 使用Java 8 Stream API过滤掉值为数字类型的项
        Map<String, Object> filteredMap = jsonObject.entrySet().stream()
                .filter(entry -> !(entry.getValue() instanceof Number))
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

        // 构建新的JSONObject
        JSONObject newJsonObject = new JSONObject(filteredMap);

        // 输出新的JSONObject
        System.out.println(newJsonObject);
    }
}

  1. JSONArray 用java 怎么依次取出json数据里面的JSONObject 对象并处理
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"name\":\"John\",\"salary\":5000},{\"name\":\"Alice\",\"salary\":6000},{\"name\":\"Bob\",\"salary\":7000}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8 Stream API提取salary字段并相加
        int totalSalary = jsonArray.stream()
                .map(obj -> (JSONObject)obj)
                .mapToInt(obj -> obj.getIntValue("salary"))
                .sum();

        // 输出相加后的总薪资
        System.out.println("Total Salary: " + totalSalary);
    }
}

  1. User
    java 8 怎么判断JSONArray 里面的JSONobject 里面 xx字段 是否有为0
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"name\":\"John\",\"xx\":1},{\"name\":\"Alice\",\"xx\":0},{\"name\":\"Bob\",\"xx\":2}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8 Stream API判断JSONArray中的JSONObject对象的xx字段是否有为0的情况
        boolean hasZero = jsonArray.stream()
                .map(obj -> (JSONObject)obj)
                .anyMatch(obj -> obj.getIntValue("xx") == 0);

        if (hasZero) {
            System.out.println("JSONArray中存在xx字段为0的JSONObject对象。");
        } else {
            System.out.println("JSONArray中不存在xx字段为0的JSONObject对象。");
        }
    }
}

  1. // “assignments”:[
    // {
    // “job”:“”,
    // “member”:[“xxx”,“xxxx”],
    // “memberName”:“xxx,xxx”
    // “responsibility”:“”
    // } JSONArray 里面的 JSONObject 是这种格式,member是[“xxx”,“xxxx”] 数组格式 怎么用java 8 把member 取出来去重并放到一个List 里面去
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"job\":\"\",\"member\":[\"xxx\",\"xxxx\"],\"memberName\":\"xxx,xxx\",\"responsibility\":\"\"},{\"job\":\"\",\"member\":[\"yyy\",\"yyyy\"],\"memberName\":\"yyy,yyyy\",\"responsibility\":\"\"}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8 Stream API提取member字段,并放入List<Long>中去重
        List<Long> memberIdList = jsonArray.stream()
                .map(obj -> (JSONObject)obj)
                .flatMap(obj -> obj.getJSONArray("member").stream())
                .distinct()
                .map(Long::parseLong)
                .collect(Collectors.toList());

        // 输出去重后的memberId列表
        System.out.println(memberIdList);
    }
}

  1.     List<String> a = new ArrayList<>();
    a.add("1");
    a.add("3");
    a.add("2");
    a.add("12");
    a.add("9");
    a.add("3");   java 怎么让这些按数字排序
    
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> a = new ArrayList<>();
        a.add("1");
        a.add("3");
        a.add("2");
        a.add("12");
        a.add("9");
        a.add("3");

        // 使用自定义的Comparator按数字进行排序
        a.sort(Comparator.comparingInt(Integer::parseInt));

        // 输出排序后的List
        System.out.println(a);
    }
}

  1. JSONArray 怎么转成List用java8 怎么实现
import com.alibaba.fastjson.JSONArray;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[\"apple\", \"banana\", \"orange\"]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8的Stream API将JSONArray转换为List
        List<String> list = jsonArray.stream()
                                     .map(Object::toString)
                                     .collect(Collectors.toList());

        // 输出转换后的List
        System.out.println(list);
    }
}

  1. java 怎么获取json的value 个数
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        // 解析JSON字符串为JSONObject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);

        // 获取JSON对象中值的数量
        int valueCount = jsonObject.size();

        // 输出值的数量
        System.out.println("JSON对象中值的数量为:" + valueCount);
    }
}

  1. 要排除掉JSON空字符串的value
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"address\":\"\"}";

        // 解析JSON字符串为JSONObject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);

        // 获取JSON对象中非空字符串值的数量
        long nonEmptyStringValueCount = jsonObject.entrySet().stream()
                .filter(entry -> entry.getValue() instanceof String && !((String) entry.getValue()).isEmpty())
                .count();

        // 输出非空字符串值的数量
        System.out.println("JSON对象中非空字符串值的数量为:" + nonEmptyStringValueCount);
    }
}

  1. 获取json里面 value是数组的java 8 写法
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John\",\"age\":30,\"hobbies\":[\"reading\",\"running\"],\"skills\":[\"Java\",\"Python\",\"SQL\"]}";

        // 解析JSON字符串为JSONObject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);

        // 获取JSON对象中值为数组的数量
        long arrayValueCount = jsonObject.entrySet().stream()
                .filter(entry -> entry.getValue() instanceof JSONArray)
                .count();

        // 输出值为数组的数量
        System.out.println("JSON对象中值为数组的数量为:" + arrayValueCount);
    }
}

  1. java 8 怎么判断JSONArray 里面的json对象 的value 不为空字符串
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Alice\",\"age\":25,\"city\":\"\"},{\"name\":\"Bob\",\"age\":35,\"city\":\"Los Angeles\"}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8 Stream API判断JSONArray中的JSONObject对象的值是否不为空字符串
        long nonEmptyStringValueCount = jsonArray.stream()
                .map(obj -> (JSONObject) obj)
                .filter(obj -> obj.entrySet().stream()
                        .anyMatch(entry -> entry.getValue() instanceof String && !((String) entry.getValue()).isEmpty()))
                .count();

        // 输出值不为空字符串的JSONObject对象的数量
        System.out.println("JSONArray中值不为空字符串的JSONObject对象的数量为:" + nonEmptyStringValueCount);
    }
}

  1. java 8 怎么判断JSONArray 里面的json对象 key为xxx的value跟yyy的value 得字符不小于30
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Alice\",\"age\":25,\"city\":\"Los Angeles\"},{\"name\":\"Bob\",\"age\":35,\"city\":\"San Francisco\"}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 定义需要比较的两个key
        String key1 = "name";
        String key2 = "city";

        // 使用Java 8 Stream API判断JSONArray中的JSONObject对象的某个key对应的value与另一个key对应的value的字符长度之和是否不小于30
        long count = jsonArray.stream()
                .map(obj -> (JSONObject) obj)
                .filter(obj -> {
                    String value1 = obj.getString(key1);
                    String value2 = obj.getString(key2);
                    return value1.length() + value2.length() >= 30;
                })
                .count();

        // 输出满足条件的JSONObject对象的数量
        System.out.println("JSONArray中满足条件的JSONObject对象的数量为:" + count);
    }
}

  1. [
    {
    “num”:“”,
    “url”:“”,
    “lightType”:“”,
    “compositionType”:“”
    }
    ] 用java8 把这个转化成Map<num,lightType+compositionType> 得map
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"num\":\"1\",\"url\":\"url1\",\"lightType\":\"lightType1\",\"compositionType\":\"compositionType1\"},{\"num\":\"2\",\"url\":\"url2\",\"lightType\":\"lightType2\",\"compositionType\":\"compositionType2\"}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8 Stream API将JSONArray转换为Map<num, lightType+compositionType>
        Map<String, String> resultMap = jsonArray.stream()
                .map(obj -> (JSONObject) obj)
                .collect(Collectors.toMap(
                        obj -> obj.getString("num"),
                        obj -> obj.getString("lightType") + obj.getString("compositionType")
                ));

        // 输出转换后的Map
        System.out.println(resultMap);
    }
}

  1. 循环JSONArray 并处理里面的JSONOBject
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonArrayStr = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":35}]";

        // 解析JSON字符串为JSONArray
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);

        // 使用Java 8的Stream API处理JSONArray中的JSONObject对象
        jsonArray.stream()
                 .map(obj -> (JSONObject) obj)
                 .forEach(jsonObject -> {
                     String name = jsonObject.getString("name");
                     int age = jsonObject.getIntValue("age");
                     // 在这里处理JSONObject对象的数据
                     System.out.println("Name: " + name + ", Age: " + age);
                 });
    }
}

  1. JSONObject 所有的value都是字符串 返回 所有的value 都非空得数量
import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "John");
        jsonObject.put("age", "30");
        jsonObject.put("city", "New York");

        // 使用Java 8的Stream API统计JSONObject中所有的value都非空的数量
        long nonEmptyValueCount = jsonObject.values().stream()
                .filter(value -> value != null && !((String) value).isEmpty())
                .count();

        // 输出统计结果
        System.out.println("JSONObject中所有的value都非空的数量为:" + nonEmptyValueCount);
    }
}

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值