파싱
json Array 내부에 있는 Json 데이터 추출하여 배열에 저장하기
이런 Json배열 하나에 여러개의 Json이 있다고 가정했을 때
Json 값마다 있는 idx,link,description 키값을 사용해 데이터를 저장해보았다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
String eventArray = null; //Json Array를 String으로 저장하기 위한 변수 선언
try {
eventArray = loadHtml(); //loadHtml()는 Json Array를 파싱해서 String으로 가져오는 함수라 가정
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("결과물 : " + eventArray);
try {
JSONArray array = new JSONArray(eventArray); //JSONArray형식으로 파싱하기 위해 새로 선언해주며 eventArray를 집어 넣어준다.
list_cnt = array.length(); //Json 배열 내 JSON 데이터 개수를 가져옴
//key의 value를 가져와 저장하기 위한 배열을 생성한다
getDescription = new String[list_cnt]; //decription 저장용
getLink = new String[list_cnt]; //link 저장용
getImageUrl = new String[list_cnt]; //imageUrl 저장용
for (int i = 0; i < list_cnt; i++) { //JSONArray 내 json 개수만큼 for문 동작
JSONObject jsonObject = array.getJSONObject(i); //i번째 Json데이터를 가져옴
getDescription[i] = jsonObject.getString("description"); //descripton 값을 배열에 저장
getLink[i] = jsonObject.getString("link"); //link 값을 배열에 저장
getImageUrl[i] = jsonObject.getString("imageUrl"); //imageurl 값을 배열에 저장
Log.i("JSON Object", jsonObject + "");
Log.i("JsonParsing", getDescription[i] + "," + getLink[i] + "," + getImageUrl[i]);
}
|
cs |
Log로 찍어보면
JsonObject의 로그
I/JSON Object: {"idx":15858,"imageUrl":"http:\/\/img.cgv.co.kr\/Event\/Event\/2017\/0330\/some_240x200_01.jpg","link":".\/detail-view.aspx?idx=15858&menu=2","description":"<어느날>1+1 예매 이벤트"}
파싱해낸 데이터 description, link, imageUrl 순으로 파싱이 된 걸 볼 수 있다.
I/JsonParsing: <어느날>1+1 예매 이벤트,./detail-view.aspx?idx=15858&menu=2,http://img.cgv.co.kr/Event/Event/2017/0330/some_240x200_01.jpg
배열에 잘 들어갔는지 description을 예로 확인을 해보면
for(int i=0;i<description.length;i++){
System.out.println("배열값 : "+description[i]);
}
I/System.out: 배열값 : <시간위의 집>스타★라이브톡
I/System.out: 배열값 : <보통사람>1+1 예매권 2차 이벤트
I/System.out: 배열값 : <로즈> 기대평 이벤트
I/System.out: 배열값 : <공각기동대:고스트 인 더 쉘>예매 경품 이벤트
description 값만 따로 배열에 잘 들어가있음을 확인할 수 있다.
이제 파싱해낸 값으로 다양한 곳에 쓸 수 있다.
'지식메모 > JAVA' 카테고리의 다른 글
자바 Swing에서 ArrayList를 JcomboBox에 집어넣기 (1) | 2019.04.28 |
---|---|
자바 스윙으로 파일 열기창 구현 (0) | 2017.06.14 |
자바 일정구간 문자열 추출하기 (0) | 2017.03.24 |
eclipse java.lang.SecurityException: class "org.hamcrest.Matchers"' 에러 해결하기 (0) | 2017.03.13 |
자바 이미지 파일 포함하여 프레임바 아이콘 변경 후 실행가능한 jar 파일로 생성하기 (0) | 2015.10.15 |
mp3 ID3 v2 태그 파싱하기
뭐가 뭔지 잘 모르겠지만 일단은 출력된다...
http://www.jthink.net/jaudiotagger/
여기서 왼쪽 하단에 downloads 탭에 Maven Release 에서
가장 최신으로 보이는 2.2.0-SNAPSHOT 으로 들어간다음
jaudiotagger-2.2.0-20130321.142353-1.jar
jar 파일을 다운 받아 프로젝트 속성에서 라이브러리를 추가해주었다.
jaudiotagger-2.2.0-20130321.142353-1.jar
자세한 소스분석은 모르겠다...
import java.io.File; import org.jaudiotagger.audio.AudioFileIO; import org.jaudiotagger.audio.mp3.MP3File; import org.jaudiotagger.tag.FieldKey; import org.jaudiotagger.tag.Tag; import org.jaudiotagger.tag.id3.AbstractID3v2Tag; public class test { public static void main(String[] args) throws Exception { String decoding = "ISO-8859-1"; String encoding = "EUC-KR"; File file = new File("/home/jeong/걸스데이-말해줘요.mp3"); MP3File mp3 = (MP3File) AudioFileIO.read(file); // ID3v24Tag tag24 = mp3.getID3v2TagAsv24(); AbstractID3v2Tag tag2 = mp3.getID3v2Tag(); Tag tag = mp3.getTag(); String title = tag.getFirst(FieldKey.TITLE); String artist = tag.getFirst(FieldKey.ARTIST); String album = tag.getFirst(FieldKey.ALBUM); String year = tag.getFirst(FieldKey.YEAR); String genre = tag.getFirst(FieldKey.GENRE); System.out.println("Tag : " + tag2); System.out.println("Song Name : " + title); System.out.println("Artist : " + artist); System.out.println("Album : " + album); System.out.println("Year : " + year); System.out.println("Genre : " + genre); } }
출력결과
Tag : Tag content: TIT2:Text="말해줘요"; TPE1:Text="걸스데이"; TALB:Text="GIRL`S DAY Party #6 [Digital Single]"; TCON:Text="아이돌"; TRCK:Text="1"; TYER:Text="2013"; TPE2:Text="걸스데이"; USLT:Language="English"; Lyrics="Intro> 우리 둘이 함께 해요 나를 혼자 두진 마 이 밤이 깊어져만 가 빨리 고백 (민아) 안해? 안해? 안할꺼야? A> (소진) You! 넌 내 맘을 너무 몰라 Oh You! 빛나는 저 파도같아 You! 왜 자꾸 애태우는지 (아이야아 아아 이 야이야) A` (혜리) (하나 하나 하나 둘 셋 넷!) 하면 솔직히 내게 말해줘 (니가 먼저 말해주면 안돼) Oh 부끄러워 부끄럽단 말야 B> (민아) 시원한 바람 아름다운 해변 이곳엔 너와 단 둘이 모든 걱정들은 저기 저 바다에 던져 버릴래 C> (다같이) 지금 말해줘요 말해줘요 말해줘요 (소진) 사실은 나를 좋아한다고 우릴 위한 저 바닷가로 빨리 떠나요 (다같이) 지금 말해줘요 말해줘요 말해줘요 (민아) 난 너 하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 Rap> (유라) 다다른 여자보단 내가 나아 하나보단 둘이 아침부터 저녁까지 우리 둘이 (나나나나) 이 노래를 불러 Say 1!2!3!4! (민아) 야! 안 따라 부르냐? B> (혜리) 뜨거운 태양 부서지는 파도 이곳엔 너와 단 둘이 (민아) 모든 걱정들은 저기 저 하늘에 던져 버릴래 C> (다같이) 지금 말해줘요 말해줘요 말해줘요 (민아) 난 너하나면 충분해 약속해 손가락 걸고 말해줘 말해줘요 말해줘 말해줘요 Bridge> (유라) 오늘밤이 다 가기 전에 고백해줄래요 (소진) 사랑해 사랑해 달콤한 입술로 (민아) 아침을 깨워줄 그댄 너란 걸 C> (소진) 지금 말해줘요 나 사랑한다는 그 말 아끼지 말아요 두 손을 꼭 붙잡고 멀리 떠나요 (다같이-소진 애드립) 지금 말해줘요 말해줘요 말해줘요 (민아) 너와 이 여름안에서 영원히 함께 할래요 말해줘 말해줘요 말해줘 말해줘요 "; TLAN:Text="kor"; TPOS:Text="1"; APIC:MIMEType="image/jpeg"; PictureData="57966 bytes"; Song Name : 말해줘요 Artist : 걸스데이 Album : GIRL`S DAY Party #6 [Digital Single] Year : 2013 Genre : 아이돌 |
'지식메모 > JAVA' 카테고리의 다른 글
숫자 천단위 콤마 입력하기 (0) | 2014.09.25 |
---|---|
Json의 이해 (0) | 2013.11.05 |
대문자 소문자 서로 변환하기 (0) | 2013.10.08 |
java 문자열 구분자로 자르기 (0) | 2013.10.02 |
ObjectNode 와 JsonNode 차이? (0) | 2013.09.06 |