keppcalm
133
2020-08-18 01:30:53 작성 2020-08-18 01:32:52 수정됨
2
228

json 데이터를 map 과 list로 표현



var DATA = {
  "origin" : [
    {
      "origin" : "국산",
      "code" : "1234"
    },
    {
      "origin" : "수입",
      "code" : "5678"
    }
  ],
  "make" : [
    {
      "make" : "기아",
      "code" : "A001"
    },
    {
      "make" : "현대",
      "code" : "A002"
    }
  ]
}


만약 위와 같은 샘플 json 코드가 있다면 별도의 json 라이브러리를 사용하지 않고

맵과 리스트로만 표현을 한다면 아래의 방법이 맞을까요?

		ArrayList<String> originList = new ArrayList<String>();
		ArrayList<String> originCodeList = new ArrayList<String>();
		originList.add("국산");
		originList.add("수입");
		originCodeList.add("1234");
		originCodeList.add("5678");
		ArrayList<String> makeList = new ArrayList<String>();
		ArrayList<String> makeCodeList = new ArrayList<String>();
		makeList.add("기아");
		makeList.add("현대");
		makeCodeList.add("kia");
		makeCodeList.add("hyundai");
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("originList", originList);
		data.put("originCodeList", originCodeList);
		data.put("makeList", makeList);
		data.put("makeCodeList", makeCodeList);

사용용도는 select box같은 곳에 차량코드를 보여주려 합니다

제조국 구분으로 한다면

ex) <optionvalue="1234">국산</option>

ex) <optionvalue="5978">수입</option>

제조사 구분으로 한다면

ex) <optionvalue="A001">기아</option>

ex) <optionvalue="A002">현대</option>

맞는 것 같으면서도 하드코딩스러워서 그런가 뭔가 아닌 것 같은 이질감이 들어서 질문드립니다.

0
  • 답변 2

  • 성일
    567
    2020-08-18 02:07:34

    심플한 것 같은데요?

    살을 붙이자면

    Origin 객체와 Make 객체를 만든 후,

    N개의 Origin 객체에 각각 origin, code 값을 넣고, 그걸 ArrayList로 모으고, (a)

    N개의 Make 객체도 각각 make, code 값을 넣고, 그걸 ArrayList로 모으고, (b)

     

    ArrayList<Origin>, ArrayList<Make>를 필드로 지니는 Data 객체를 만든 후,


    Data 객체 하나에 (a), (b) 를 넣으면 될 것 같습니다. 양이 많아지면, DB로 관리할테니 이 쪽이 편하겠죠 아마?


  • keppcalm
    133
    2020-08-18 08:59:24

    성일 아 맞습니다 생각해보니 DATA 바로 아래로 한 1depth가 빠졌네요ㅎㅎ

  • 로그인을 하시면 답변 을 등록할 수 있습니다.