jackson - 대상과 json 사이의 전환
//1. XML , json ,json text/html
Jackson :
public class TestJackson {
/** json*/
@Test
public void test01() {
StringWriter out=new StringWriter();
JsonGenerator jg=null;
try {
//1. JsonFactory
JsonFactory jf=new JsonFactory();
//2. JsonGenerator
jg=jf.createGenerator(out);
//
jg.useDefaultPrettyPrinter();
//3. ObjectMapper, ObjectMapper
ObjectMapper mapper=new ObjectMapper();
User u=new User(1," ","123",new Group(1," "));
mapper.writeValue(jg, u);
System.out.println(out.toString());
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(jg!=null) jg.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/** List json*/
@Test
public void test02() {
StringWriter out=new StringWriter();
JsonGenerator jg=null;
try {
//1. JsonFactory
JsonFactory jf=new JsonFactory();
//2. JsonGenerator
jg=jf.createGenerator(out);
//
//jg.useDefaultPrettyPrinter();
//3. ObjectMapper, ObjectMapper
ObjectMapper mapper=new ObjectMapper();
List<User> us=new ArrayList<User>();
User u=new User(1," ","123",new Group(1," "));
us.add(u);
u=new User(2," ","123",new Group(1," "));
us.add(u);
u=new User(3," ","123",new Group(1," "));
us.add(u);
mapper.writeValue(jg, us);
System.out.println(out.toString());
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(jg!=null) jg.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/** json */
@Test
public void test03(){
try {
String json="{\"id\":1,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}}";
ObjectMapper mapper=new ObjectMapper();
User u=mapper.readValue(json,User.class);
System.out.println(u.getId()+","+u.getUsername()+","+u.getPassword()+","+u.getGroup().getName());
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/** json List*/
@Test
public void test04(){
try {
String json="[{\"id\":1,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}},{\"id\":2,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}},{\"id\":3,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}}]";
ObjectMapper mapper=new ObjectMapper();
// json List , Bean ,list Map
/*List<User> us=mapper.readValue(json,List.class);
System.out.println(us.size());
for(User u:us){
System.out.println(u.getUsername());
}*/
/* json map , bean, ,
* , , */
List<Map<String,Object>> us=mapper.readValue(json,List.class);
for(Map<String,Object> m:us){
System.out.println(m.get("username"));
System.out.println(m.get("group"));
}
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**Jackson */
@Test
public void test05(){
try {
String json="[{\"id\":1,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}},{\"id\":2,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}},{\"id\":3,\"username\":\" \",\"password\":\"123\",\"group\":{\"id\":1,\"name\":\" \"}}]";
ObjectMapper mapper=new ObjectMapper();
JsonNode node=mapper.readTree(json);
//
System.out.println(node.isArray());
System.out.println(node.size());
System.out.println(node.get(0).get("username"));
System.out.println(node.get(0).get("group").get("name"));
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/** JacksonUtil List json*/
@Test
public void test02_1() {
List<User> us=new ArrayList<User>();
User u=new User(1," ","123",new Group(1," "));
us.add(u);
u=new User(2," ","123",new Group(1," "));
us.add(u);
u=new User(3," ","123",new Group(1," "));
us.add(u);
System.out.println(JacksonUtil.getInstance().obj2json(us));
}
}
////////////////////////////////////////////////////
public class JacksonUtil {
private static JacksonUtil ju;
private static JsonFactory jf;
private static ObjectMapper mapper;
private JacksonUtil(){}
public static JacksonUtil getInstance(){
if(ju==null) ju=new JacksonUtil();
return ju;
}
public static ObjectMapper getMapper(){
if(mapper==null){
mapper=new ObjectMapper();
}
return mapper;
}
public static JsonFactory getFactory(){
if(jf==null) jf=new JsonFactory();
return jf;
}
public String obj2json(Object obj){
JsonGenerator jg=null;
try {
jf=getFactory();
mapper=getMapper();
StringWriter out=new StringWriter();
jg=jf.createGenerator(out);
mapper.writeValue(jg,obj);
return out.toString();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(jg!=null) jg.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public Object json2obj(String json,Class<?> clz){
try {
mapper=getMapper();
return mapper.readValue(json,clz);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.