검색결과 리스트
글
JSON 파싱 사용하기
먼저 json-sample-1.2 jar를 다운 받아야한다.
<%@ page language="java" contentType="text/html; charset=euc-kr" import="org.json.simple.*" %>
<%@ taglib uri="/spacenet/taglibs/dispData" prefix="dd" %>
<%@ page import="java.util.*, spacenet.func, spacenet.database.BlobQuery" %>
<%@ page import="java.io.PrintWriter"%>
<%@ page import="rental.*"%>
<%@ page import="java.util.*, spacenet.func, spacenet.ppplus.ppagencyuser.ppagencyUser" %>
<%
WriteLog log = new WriteLog("/home/ppplus/logs/mobigo.log");
String ppAgencyNo=func.NVL(request.getParameter("aid")); // http://partner.freet.co.kr/mobigo/mobigo.jsp?aid=
log.write(" === mobigo start ===");
log.write(" ppAgencyNo: ["+ppAgencyNo+"]");
String ppAgencyName="";
String operType="";
int remain = 0;
String resultCode = "99";
//////////////// 해당 대리점 정상, 잔액 여부 쿼리 Start//////////////////////
Hashtable param = new Hashtable();
param.put("1" , "SELECT PP_AGENCY_NAME, REMAIN, OPER_TYPE FROM PP_AGENCY_INFO WHERE PP_AGENCY_NO = '"+ppAgencyNo+"' ");
%>
<dd:data db="ppc" sql="REPLACE_QRY" params="<%=param%>" paramsReplace="true">
<%
ppAgencyName = String.valueOf(data.get("1"));
remain =Integer.parseInt(String.valueOf(data.get("2")));
operType = String.valueOf(data.get("3"));
log.write(" ppAgencyName: ["+ppAgencyName+"]");
log.write(" remain: ["+remain+"]");
log.write(" operType: ["+operType+"]");
%>
</dd:data>
<%
//////////////// 해당 대리점 정상, 잔액 여부 쿼리 End//////////////////////
if(operType.equals("A"))
{
if(remain >= 1000)
resultCode = "00"; // 대리점 영업이 정상일 경우
else
resultCode = "99"; //정상이면서 잔액이 없는 경우
}
else
resultCode = "99"; //대리점 영업이 정상이 아닐 경우
log.write(" resultCode: ["+resultCode+"]");
String callBack = request.getParameter("callBack"); // 서버로 부터 넘어온 데이터를 받아옴
log.write(" callBack: ["+callBack+"]");
log.write(" === mobigo end ===");
JSONObject jObject = new JSONObject(); //하나의 정보를 저장할 JSONObject를 설정
PrintWriter pw = response.getWriter();
jObject.put("id", ppAgencyNo); //데이터를 삽입
jObject.put("resultCode", resultCode); //데이터를 삽입
pw.print(callBack + "("+jObject.toString()+")");
// pw.print("("+jObject.toString()+")");
pw.flush();
pw.close();
%>
============================ json 파싱 ============================================
JSON형태로 저장된 파일을 읽어서 DB에 저장
******** json 파일 start *****************
{
"date":"2015-03-03",
"rowCount":2,
"rows":
[
{
"aid":"ID1",
"aname":"\ub300\ub9ac\uc810\uba851",
"acode":"\ub300\ub9ac\uc810\ucf54\ub4dc1",
"dc":"7",
"dp":"6300",
"mc":"21"
},
{
"aid":"ID2",
"aname":"\ub300\ub9ac\uc810\uba852",
"acode":"\ub300\ub9ac\uc810\ucf54\ub4dc2",
"dc":"5",
"dp":"4500",
"mc":"15"
},
{
"aid":"ID3",
"aname":"\ub300\ub9ac\uc810\uba853",
"acode":"\ub300\ub9ac\uc810\ucf54\ub4dc3",
"dc":"7",
"dp":"7500",
"mc":"75"
}
]
}
******** json 파일 end *****************
******** 파싱 및 DB저장 ****************
<%@ page language="java" contentType="text/html; charset=euc-kr"%>
<%@ page import="org.json.simple.*" %>
<%@ page import="java.io.*,rental.*"%>
<%@page import="org.json.simple.parser.*" %>
<%@ page import="java.util.*, spacenet.func, spacenet.database.BlobQuery" %>
<%!
public String replaceString(String src, String oldStr, String newStr)
{
if (src == null)
return null;
StringBuffer dest = new StringBuffer("");
int oldLen = oldStr.length();
int srcLen = src.length();
int pos = 0;
int oldPos = 0;
while ((pos = src.indexOf(oldStr, oldPos)) >= 0)
{
dest.append(src.substring(oldPos, pos));
dest.append(newStr);
oldPos = pos + oldLen;
}
if (oldPos < srcLen)
dest.append(src.substring(oldPos));
return dest.toString();
}
%>
<%
WriteLog log = new WriteLog("/home/ppplus/logs/mobigo.log");
BlobQuery db = null;
int qryno = 0, n = 0;
JSONParser parser = new JSONParser();
String acode="", aid="", aname="", dp="", mc="", dc="";
try
{
Object obj = parser.parse(new FileReader("/data4/rcpro/mobigo/freet.json")); // myJson.json파일을 읽어와 Object로 파싱
JSONObject jsonObject =(JSONObject) obj;
JSONArray msgList =(JSONArray) jsonObject.get("rows"); // key 값으로 list가져오기
/*
Iterator iterator = msgList.iterator();
while(iterator.hasNext()) iterator 로 파일 읽기
{
out.println(iterator.next());
}
*/
String date = (String) jsonObject.get("date"); //날짜
int rowCount = func.objToInt(jsonObject.get("rowCount")); //레코드 갯수
date = replaceString((date),"-",""); // YYYY-MM-DD 형식에서 YYYYMMDD 형식으로
log.write(" date: ["+date+"]");
log.write(" rowCount: ["+rowCount+"]");
try
{
db = new BlobQuery();
//db에 접속하기
if (!db.getConnect("ppc"))
{
out.println("<script>alert('db 접속오류가 발생하였습니다. 다시 시도해주세요.'); history.back(); </script>");
}
db.SQL = "INSERT INTO MOBIGO (PROCESS_DATE, ROW_COUNT, ID, PP_AGENCY_NO, PP_AGENCY_NAME, DAY_COUNT, DAY_FEE, VAT_DAY_FEE, MONTH_COUNT) "
+"VALUES ( ? ,?, ?, ?, ?, ?, ?, ? ,? ) ";
qryno = db.prepareStatement();
for(int i=0; i < msgList.size(); i++)
{
JSONObject jsonobj=(JSONObject)msgList.get(i); //각각의 값을 개별로 가져오기 위해 JSON 배열 파싱후 각각의 key로 value 값 출력
aid=(String) jsonobj.get("aid"); //ID
aname=(String) jsonobj.get("aname"); //대리점명
acode=(String) jsonobj.get("acode"); //대리점코드
dc=(String) jsonobj.get("dc"); //일일누적건수
dp=(String) jsonobj.get("dp"); //일일 누적 금액
mc=(String) jsonobj.get("mc"); //월 누적건수
double vatDp = Double.parseDouble(dp) * 1.1; //일일 누적금액에 부가세 포함
log.write(" aid: ["+aid+"]");
log.write(" aname: ["+aname+"]");
log.write(" acode: ["+acode+"]");
log.write(" dc: ["+dc+"]");
log.write(" dp: ["+dp+"]");
log.write(" mc: ["+mc+"]");
log.write(" vatDp: ["+vatDp+"]");
db.Statements(qryno).setString(1, date);
db.Statements(qryno).setInt(2, rowCount);
db.Statements(qryno).setString(3, aid);
db.Statements(qryno).setString(4, acode);
db.Statements(qryno).setString(5, aname);
db.Statements(qryno).setInt(6, Integer.parseInt(dc));
db.Statements(qryno).setInt(7, Integer.parseInt(dp));
db.Statements(qryno).setDouble(8, vatDp);
db.Statements(qryno).setInt(9, Integer.parseInt(mc));
n = db.executeUpdate(qryno);
log.write(" RESULT: ["+n+"]");
}
db.Close(qryno);
db.commit();
}
catch(Exception e)
{
log.write("error: " + e.getMessage());
db.rollback();
}
finally
{
db.freeConnect();
}
} catch (Exception e)
{
e.printStackTrace();
log.write("error: " + e.getMessage());
}
%>
'개발 > 코딩' 카테고리의 다른 글
메뉴 클릭하면 이미지 변경 (0) | 2016.03.21 |
---|---|
url로 파일 다운로드 (0) | 2015.03.12 |
session을 통해 값넘기기 (0) | 2014.06.11 |
request.getParameter로 값 넘기기 (0) | 2014.06.11 |
request, response 객체 (0) | 2014.04.03 |