각카
957
2020-08-13 12:32:58 작성 2020-08-13 12:38:33 수정됨
4
349

java List<Map<String, Object>> 키값 추출 질문드립니다


java 에서 List<Map<String, Object>> 로 받은 josn 데이터에서  해당 키값으로 들어오는 데이터만 뽑고 싶은데 방법이 있을까요?

json받은 데이터는 [{test ="1" ,test2="a"},{test ="2" ,test2="b"},{test ="3" ,test2="c"}] 이런식으로 들어올때 test라는 키값의 데이터만 추출하고 싶습니다

0
  • 답변 4

  • 1.7년차개발자
    9
    2020-08-13 13:15:45
    List 반복문 돌리는 함수를 만드셔야 할거같습니다
  • kiroki
    760
    2020-08-13 13:20:17 작성 2020-08-13 17:29:27 수정됨

    jdk8부터는 람다식으로 간단하게 해결이됩니다

    List<Map<String, Object>> datas = getDatas(param);
    List<String> tests = datas.stream().map(data -> data.test);





  • 삽질왕
    76
    2020-08-13 14:10:04

    스트림에 필터사용해서 리스트로 반환하면됩니다.

  • asdad
    74
    2020-08-13 17:26:34

    저도 연습 해볼겸 만들어봤어요 .. 도움이 되시길

    public class test {
    public static void main(String[] args) {
    Member member = new Member("KJJ");
    Member member1= new Member("KJJ2");
    Member member2 = new Member("KJJ3");
    Member member3= new Member("KJJ4");

    Map<String,Member> data= new HashMap<>();
    data.put("test",member);
    data.put("test2",member1);

    Map<String,Member> data2= new HashMap<>();
    data2.put("test",member2);
    data2.put("test2",member3);
    List<Map<String,Member>> datas = new ArrayList<>();
    datas.add(data);
    datas.add(data2);

    List<String> test = datas.stream()
    .map(MapData -> MapData.get("test").getName())
    .collect(Collectors.toList());
    test.forEach(System.out::println);
    }
    }
  • 로그인을 하시면 답변을 등록할 수 있습니다.