kkk123123
10
2020-10-18 01:37:05
2
174

자바 스프링 JSONObject질문


package test.test.test;


import java.io.FileWriter;

import java.io.IOException;

import java.lang.reflect.Array;

import java.util.ArrayList;


import org.json.simple.JSONArray;

import org.json.simple.JSONObject;


public class JSONMaker {


       public static void main(String[] args) throws IOException{

             // {} - JSONObject ,[] - JSONArray

          

          double x=37.559156687062148;

          double y=126.92536526611102;

          double x1=47.559156687062148;

          double y1=226.92536526611102;

            JSONObject myjson = new JSONObject();  

            JSONObject myjson1 = new JSONObject();            


             myjson.put("lng",y);

             myjson.put("lat",x);

             myjson1.put("lng",y1);

             myjson1.put("lat",x1);

             

             

             JSONArray subjectlist = new JSONArray();

             subjectlist.add(myjson);

             subjectlist.add(myjson);


             JSONObject position = new JSONObject();

             position.put("positions", subjectlist);

          

             System.out.println(position.toJSONString());

             

     try {

           FileWriter writer = new FileWriter("C:\\eGovFrame-3.9.0\\project3\\projectTest\\src\\main\\resources\\my.json");

           writer.write(subjectlist.toJSONString());

           writer.flush();

           writer.close();

           

     }catch (Exception e) {

      System.out.println(e);

   }

      }

   

   }

==================================================

위에는 소스 코드입니다

JSONObject myjson = new JSONObject();   

JSONObject myjson1 = new JSONObject();     

   

JSONObject myjson2 = new JSONObject();         

JSONObject myjson3 = new JSONObject();         

JSONObject myjson4 = new JSONObject();        이런식으로 만들어서 사용하는게아니라 


myjson1,2,3,4,5,6,7,8,9,10  자동적으로 myjson1부터 10까지 자동적으로 만들어서 사용하고 싶은데 

 JSONObject myjson1 = new JSONObject();  이렇게 1부터 10까지 선언해서 사용하는 것 이외에는 없는 것인가요?






0
  • 답변 2

  • 원숭이부대
    960
    2020-10-18 02:03:32

    lng, lat 이라는 double 타입 필드를 가지는 클래스를 하나 선언하시고요.

    이 클래스를 Clazz라고 한다면


    List<Clazz> 에 10개의 오브젝트를 생성한 후 

    ObjectMapper로 serialize 하시면 json list를 얻을 수 있습니다.


    일반적으로 이렇게 사용하구요

  • zepinos
    20k
    2020-10-18 02:17:41

    Java 같은 언어에서 변수명을 가변적으로 쓰는걸 권하진 않습니다.


    차라리 Map 을 이용해서 key 을 1~10 까지 가지는 객체를 저장하게 하고(Json 에 포함되어야 할 내용을 저장한 형태의 객체) 이를 Entry 나 key list 로 반복하면서 꺼내서 사용한 뒤 마지막에 Json 으로 마샬링 하는게 낫지 않을까 합니다. 말이 좀 이상한데...그냥 Java 의 저장객체 형태로 저장한 뒤, 마지막에 Json 으로 변환해서 쓴다는 의미입니다.

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