JSON 예제(1) _ Java에서 JSON 데이타 생성하고 파일쓰기
json_simple-1.1.jar을 직접 다운받거나 maven project라면 다음과 같은 디펜던시 추가.
public static void main(String[] args) {
JSONObject personInfo = new JSONObject();
personInfo .put("name", "Garry");
personInfo .put("age", 20 );
personInfo .put("jobInfo ", "programmer" );
JSONArray hobbyList = new JSONArray();
hobbyList.add("programming");
hobbyList.add("baking");
hobbyList.add("tiyping");
personInfo .put("messages", hobbyList);
try {
FileWriter file = new FileWriter("c:\\test.json");
file.write(personInfo.toJSONString());
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print(personInfo);
}
<<output>>
{"jobInfo ":"programmer","name":"Garry","messages":["programming","baking","tiyping"],"age":20}
JSON 예제(2) _ .json 파일 읽어 JSON 파싱하기1
{
"id":123,
"name":"Pankaj Kumar",
"permanent":true,
"address":[{
"street":"El Camino Real",
"city":"San Jose",
"zipcode":"95014"
}],
"phoneNumbers":["9988664422", "1234567890"],
"role":"Developer"
}
하나하나 파싱해서 data를 뽑아와보자.
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("d:\\test.json"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("name");
System.out.println("name :: " +name);
long id = (Long) jsonObject.get("id");
System.out.println("id :: " + id);
// Array
JSONArray phoneNum = (JSONArray) jsonObject.get("phoneNumbers");
Iterator<String> iterator = phoneNum.iterator();
while (iterator.hasNext()) {
System.out.println("phoneNumbers :: " + iterator.next());
}
//Object
JSONArray array = (JSONArray) jsonObject.get("address");
for(int i=0; i<array.size(); i++){
JSONObject result = (JSONObject) array.get(i);
System.out.println("result :: " +result.get("zipcode"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
<<output>>
name :: Pankaj Kumar
id :: 123
phoneNumbers :: 9988664422
phoneNumbers :: 1234567890
result :: 95014
JSON 예제(3) _ .json 파일 읽어 JSON 파싱하기2
다음과 같은 JSON Object의 properties를 파싱해 보자.
{
"name":"Product",
"properties":
{
"id":
{
"type":"number",
"description":"Product identifier",
"required":true
},
"name":
{
"description":"Name of the product",
"type":"string",
"required":true
},
"price":
{
"type":"number",
"minimum":0,
"required":true
},
"tags":
{
"type":"array",
"items":
{
"type":"string"
}
}
}
}
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("d:\\test.json"));
JSONObject jsonObject = (JSONObject) obj;
Map<String, Object> map = new HashMap<String, Object>();
JSONObject jsonObj = (JSONObject) jsonObject.get("properties");
Iterator<String> keysItr = jsonObj.keySet().iterator();
while (keysItr.hasNext()) {
String key = keysItr.next();
Object value = jsonObj.get(key);
System.out.println(key + " : " + value);
if(value instanceof JSONArray) {
//System.out.println("json array");
}
else if(value instanceof JSONObject) {
//System.out.println("json object");
}
map.put(key, value);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
<<output>>
price : {"type":"number","minimum":0,"required":true}
name : {"description":"Name of the product","type":"string","required":true}
id : {"description":"Product identifier","type":"number","required":true}
tags : {"type":"array","items":{"type":"string"}}
JSON 예제(4) _ JSON String 을 JSONObject로 변환하기
다음과 같이 stat이라는 key로 묶인 JSON String을 자바에서 JSONObject로 변환해보자.
JSONParser parser = new JSONParser();
String jsonString = "{\"stat\":{\"sdr\": \"aaaaaaaaaaaaaaaaaaaaa\",\"rcv\": \"bbbbbbbbbbbbbbbbbbbb\",\"time\": \"UTC in millis\""
+ ",\"type\": 1,\"subt\": 1,\"argv\": [{\"1\":2},{\"2\":3}]}}";
try {
Map json = (Map)parser.parse(jsonString);
Iterator iter = json.entrySet().iterator();
Object entry = json.get("stat");
System.out.println(entry);
System.out.println( entry.getClass() );
} catch (ParseException e) {
e.printStackTrace();
}
'Language > Java' 카테고리의 다른 글
[JAVA] 자바로 메일 발송하기 (2) | 2016.10.27 |
---|---|
[Java] 임시(랜덤) 비밀번호 생성하기 (비밀번호 찾기) (0) | 2016.10.25 |
[Java] java 파일이름 추출/File name & path 추출 (0) | 2016.10.19 |
[JAVA/JSP] 페이징처리/페이지/paging/게시판구현 페이징 (0) | 2016.09.05 |
[JAVA] 다운로드 파일명/browser fileName 깨짐현상/브라우저 파일이름 깨짐/파일 한글 깨짐/파일 특수문자 (0) | 2016.08.18 |