json 데이터 처리 및 excle 생성

3604 단어 json
이 작업은 다음과 같습니다. 데이터베이스 테이블 tb 에서titles_en에서 필드subject (이 필드는 json 데이터를 저장합니다.) 이 json 중 하나의 속성 값을 가져오고 중복 데이터와 소수를 제거해야 합니다.
1. 데이터를 조회할 수 있을 때까지 실체 클래스 LseTitlesEn을 만들고 조회 Dao를 만듭니다(이 단계는 생략합니다).
2. json 속성에 따라 javabean을 다음과 같이 만듭니다.
public class Subj {
	private String coden;
	private String dewey;
	private String lc;
	private String subject;

	public String getCoden() {
		return coden;
	}

	public void setCoden(String coden) {
		this.coden = coden;
	}

	public String getDewey() {
		return dewey;
	}

	public void setDewey(String dewey) {
		this.dewey = dewey;
	}

	public String getLc() {
		return lc;
	}

	public void setLc(String lc) {
		this.lc = lc;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

}

3. json 처리 클래스를 만듭니다. 다음과 같습니다.
/**
 *     json,json   
 * 
 */
public class JsonUtil {

	/**
	 *     json
	 * 
	 * @param obj
	 * @return
	 * @throws IOException
	 */
	public static String obj2Json(Object obj) throws IOException {
		StringWriter stringWriter = new StringWriter();
		JsonGenerator jsonGenerator = null;
		try {
			jsonGenerator = new JsonFactory().createJsonGenerator(stringWriter);
			ObjectMapper objectMapper = new ObjectMapper();
			objectMapper.writeValue(jsonGenerator, obj);
		} catch (IOException e) {
			throw e;
		} finally {
			if (null != jsonGenerator) {
				try {
					jsonGenerator.close();
				} catch (IOException e) {
					throw e;
				}
			}
		}
		return stringWriter.getBuffer().toString();
	}

	/**
	 * son   
	 * 
	 * @param json
	 * @param cls
	 * @return
	 * @throws Exception
	 */
	public static Object json2Obj(String json, Class cls) throws Exception {
		ObjectMapper mapper = new ObjectMapper();
		Object o = null;
		try {
			o = mapper.readValue(json, cls);
			return o;
		} catch (Exception e) {
			throw e;
		}
	}
}

4. 입력 클래스 Writer를 만듭니다.
public class Writer {

	public static void writer(List<String> str) throws IOException {
		FileWriter fileWriter = new FileWriter("E:\\dewey.xls");
		List<String> subject = str;
		for (String string : subject) {
			fileWriter.write(string + "\r
"); } fileWriter.flush(); fileWriter.close(); } /** * 、 * * @param str * @throws IOException */ public static void setWriter(Set<Integer> str) throws IOException { FileWriter fileWriter = new FileWriter("E:\\dewey.xls"); Set<Integer> set = str; for (Integer integer : set) { fileWriter.write(integer + "\r
"); } fileWriter.flush(); fileWriter.close(); } }

5. 테스트 실행
public class DefaultInitServiceTest {

	@Resource
	private IDefaultInitService defaultInitService;

	@Test
	public void testFindTitleEn() throws Exception {
		List<String> subject = defaultInitService.searchTitleEn();
		//   、   
		Set<Integer> set = new HashSet<Integer>();
		for (String string : subject) {
			Subj su = (Subj) JsonUtil.json2Obj(string, Subj.class);

			String str = su.getDewey();
			// System.out.println(str);
			if (str != "") {
				if (str.contains(",")) {
					String[] s = str.split(",");
					for (String str2 : s) {
						double d1 = Double.valueOf(str2);
						int i = (int) d1;
						set.add(i);
					}
				} else {
					double d2 = Double.valueOf(str);
					int j = (int) d2;
					set.add(j);
				}
			}
		}
		System.out.println(set);
		Writer.setWriter(set);
	}

}

좋은 웹페이지 즐겨찾기