반응형
파일에 쓰지 않고 Jackson을 사용하여 Map을 JSON 표현으로 변환할 수 있는 방법이 있습니까?
잭슨을 사용하여 HashMap을 JSON 표현으로 변환하려고 합니다.
하지만 제가 지금까지 봐온 모든 방법에는 파일에 쓴 다음 다시 읽는 것이 포함되는데, 이는 정말 비효율적인 것 같습니다.직접 할 수 있는 방법이 없을까요?
예를 들어 다음과 같습니다.
public static Party readOneParty(String partyName) {
Party localParty = new Party();
if(connection==null) {
connection = new DBConnection();
} try {
String query = "SELECT * FROM PureServlet WHERE PARTY_NAME=?";
ps = con.prepareStatement(query);
ps.setString(1, partyName);
resultSet = ps.executeQuery();
meta = resultSet.getMetaData();
String columnName, value;
resultSet.next();
for(int j=1;j<=meta.getColumnCount();j++) { // necessary to start at j=1 because of MySQL index starting at 1
columnName = meta.getColumnLabel(j);
value = resultSet.getString(columnName);
localParty.getPartyInfo().put(columnName, value); // this is the hashmap within the party that keeps track of the individual values. The column Name = label, value is the value
}
}
}
public class Party {
HashMap <String,String> partyInfo = new HashMap<String,String>();
public HashMap<String,String> getPartyInfo() throws Exception {
return partyInfo;
}
}
출력은 다음과 같습니다.
"partyInfo": {
"PARTY_NAME": "VSN",
"PARTY_ID": "92716518",
"PARTY_NUMBER": "92716518"
}
지금까지 제가 접한 모든 예는ObjectMapper
파일에 쓴 다음 다시 읽는 것을 포함합니다.
잭슨의 자바 버전이 있나요?HashMap
또는Map
제가 구현한 것과 유사한 방식으로 작동할까요?
지도 전달 대상ObjectMapper.writeValueAsString(Object value)
사용하는 것보다 효율적입니다.StringWriter
문서에 따르면 다음과 같습니다.
Java 값을 문자열로 시리얼화하기 위해 사용할 수 있는 메서드.기능적으로는 StringWriter를 사용하여 writeValue(Writer, Object)를 호출하고 String을 구성하는 것과 동일하지만 보다 효율적입니다.
예
import org.codehaus.jackson.map.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Example {
public static void main(String[] args) throws IOException {
Map<String,String> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
String mapAsJson = new ObjectMapper().writeValueAsString(map);
System.out.println(mapAsJson);
}
}
StringWriter 를 사용할 수 있습니다.
package test;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
public class StringWriterExample {
private static ObjectMapper objectMapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
Map<String,String> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
StringWriter stringWriter = new StringWriter();
objectMapper.writeValue(stringWriter, map);
System.out.println(stringWriter.toString());
}
}
생산하다
{"key2":"value2","key1":"value1"}
언급URL : https://stackoverflow.com/questions/17819710/is-there-any-way-to-convert-a-map-to-a-json-representation-using-jackson-without
반응형
'source' 카테고리의 다른 글
Reacjs 프로젝트 구축 후 불투명도 값이 1%로 변경됨 (0) | 2023.03.27 |
---|---|
IntelliJ IDEA에서 1개의 실행 Configuration으로 여러 Spring Boot 어플리케이션을 실행하는 방법이 있습니까? (0) | 2023.03.27 |
JSON 개체를 TypeScript 개체로 해석하는 방법 (0) | 2023.03.27 |
Gson에서 추상 클래스 직렬화 취소 (0) | 2023.03.27 |
{% 확장 '... %} 조건부로 만들 수 있는 방법이 있습니까? - 장고 (0) | 2023.03.27 |