반응형
JSONObject를 사용하여 Java에서 올바른 JSONArray를 작성하는 방법
JSONObject를 사용하여 Java에서 다음과 같은 JSON 개체를 만들려면 어떻게 해야 합니까?
{
"employees": [
{"firstName": "John", "lastName": "Doe"},
{"firstName": "Anna", "lastName": "Smith"},
{"firstName": "Peter", "lastName": "Jones"}
],
"manager": [
{"firstName": "John", "lastName": "Doe"},
{"firstName": "Anna", "lastName": "Smith"},
{"firstName": "Peter", "lastName": "Jones"}
]
}
많은 예를 찾았지만, 정확히 JSONAray 문자열은 찾지 못했습니다.
다음은 Java 6을 사용하여 시작하는 코드입니다.
JSONObject jo = new JSONObject();
jo.put("firstName", "John");
jo.put("lastName", "Doe");
JSONArray ja = new JSONArray();
ja.put(jo);
JSONObject mainObj = new JSONObject();
mainObj.put("employees", ja);
편집: 다음 항목에 대해 많은 혼란이 있었습니다.put
대add
여기서 그 차이를 설명하겠습니다.Java 6 org.json.JSONArray에는 다음이 포함됩니다.put
method 및 Java 7 javax.json에는 다음 명령어가 포함되어 있습니다.add
방법.
Java 7에서 Builder 패턴을 사용하는 예는 다음과 같습니다.
JsonObject jo = Json.createObjectBuilder()
.add("employees", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("firstName", "John")
.add("lastName", "Doe")))
.build();
이 JSON은 서버나 파일에서 가져오고 JSONArray 개체를 만들고 싶을 것입니다.
String strJSON = ""; // your string goes here
JSONArray jArray = (JSONArray) new JSONTokener(strJSON).nextValue();
// once you get the array, you may check items like
JSONOBject jObject = jArray.getJSONObject(0);
이것이 도움이 되기를 바랍니다:)
코드 중복을 방지하기 위해 개인 json 개체를 생성하기 위해 재사용 가능한 작은 메서드를 작성할 수 있습니다.
JSONObject getPerson(String firstName, String lastName){
JSONObject person = new JSONObject();
person .put("firstName", firstName);
person .put("lastName", lastName);
return person ;
}
public JSONObject getJsonResponse(){
JSONArray employees = new JSONArray();
employees.put(getPerson("John","Doe"));
employees.put(getPerson("Anna","Smith"));
employees.put(getPerson("Peter","Jones"));
JSONArray managers = new JSONArray();
managers.put(getPerson("John","Doe"));
managers.put(getPerson("Anna","Smith"));
managers.put(getPerson("Peter","Jones"));
JSONObject response= new JSONObject();
response.put("employees", employees );
response.put("manager", managers );
return response;
}
이것을 시도해 보세요...도움이 되었으면 좋겠다
JSONObject jsonObj1=null;
JSONObject jsonObj2=null;
JSONArray array=new JSONArray();
JSONArray array2=new JSONArray();
jsonObj1=new JSONObject();
jsonObj2=new JSONObject();
array.put(new JSONObject().put("firstName", "John").put("lastName","Doe"))
.put(new JSONObject().put("firstName", "Anna").put("v", "Smith"))
.put(new JSONObject().put("firstName", "Peter").put("v", "Jones"));
array2.put(new JSONObject().put("firstName", "John").put("lastName","Doe"))
.put(new JSONObject().put("firstName", "Anna").put("v", "Smith"))
.put(new JSONObject().put("firstName", "Peter").put("v", "Jones"));
jsonObj1.put("employees", array);
jsonObj1.put("manager", array2);
Response response = null;
response = Response.status(Status.OK).entity(jsonObj1.toString()).build();
return response;
언급URL : https://stackoverflow.com/questions/18983185/how-to-create-correct-jsonarray-in-java-using-jsonobject
반응형
'sourcecode' 카테고리의 다른 글
커스텀 마리아 DB 도커 이미지 작성 방법 (0) | 2022.11.07 |
---|---|
Kotlin에서 익명 인터페이스 인스턴스를 작성하려면 어떻게 해야 합니까? (0) | 2022.11.07 |
javax.validation 입니다.확인예외:HV000183:'javax.el'을 로드할 수 없습니다.Expression Factory ' (0) | 2022.11.07 |
"wait_timeout"이 감소했음에도 불구하고 MariaDB 프로세스 목록에서 sleep 상태의 쿼리 수가 다수 감소함 (0) | 2022.11.07 |
Java 8 스트림이 비어 있는지 확인하는 방법 (0) | 2022.11.06 |