지식메모

Json의 이해

2013. 11. 5. 11:30
반응형

 

만들고자 하는 구조는

{

  "j1":{

        "j2":{

"arr1":[{"j3":"a"},{"j4":"b"}]

              }

        }

}

 

이런 유형의 구조이다. 그렇다면 필요한 코드는

ObjectNode json = json.newObject();

ObjectNode j1 = json.newObject();

ObjectNode j2 = json.newObject();

ObjectNode arr1 = json.newObject();

ObjectNode j3 = json.newObject();

ObjectNode j4 = json.newObject();

ArrayNode array = null;

 

이렇게 한 뒤 구현하려면 역순으로 구현한다.

 

json객체 생성

j3.put("j3","a"); --> {"j3":"a"}

j4.put("j4","b"); --> {"j4":"b"}

 

json객체를 array라는 배열에 삽입

array.add(j3); --> [{"j3":"a"}]

array.add(j4); --> [{"j3":"a"},{"j4":"b"}]

 

array배열을 arr1이라는 key로 arr1 jsonobject에 삽입

arr1.put("arr1",array) 

--> {arr1:[{"j3":"a"},{"j4":"b"}]}

 

arr1 jsonObject를 j2라는 key로 j2 jsonObject에 삽입

j2.put("j2",arr1);

--> {j2:{"arr1":[{"j3":"a"},{"j4":"b"}]}}

 

j2 jsonObject를 j1라는 key로 j1 jsonObject에 삽입

j1.put("j1",j2);

--> {"j1":{"j2":{"arr1":[{"j3":"a"},{"j4":"b"}]}}}

 

이렇게 된다.

역순으로 jsonObject생성해서 배열에 넣고,

그 배열을 jsonobject 생성해서 집어넣고,

그걸 또 jsonObject에 넣는 역순이다.

 

위 소스를 쉽게쓰면

 

 

 

ObjectNode json1;
ObjectNode json2;
ObjectNode json3;
arrayNode arr = null;

json3 = json.newObject();
json3.put("j3","a");
arr.add(json3);
json3 = json.newObject(); 
/*
여기서 json3은 객체 새로 생성안하면
{"j3":"a", "j4", "b"}가 되고,
객체를 새로 생성하면
{"j4":"b"}가 된다.
초기화 안하면 아래 arr.add에서 
{"j3":"a"},{"j3":"a","j4":"b"} 로 들어가게된다.
*/
json3.put("j4","b");
arr.add(json3);

json3 = json.newObject();
json3.put("arr1",arr);

json2 = json.newObject();
json2.put("j2",json3);

json1 = json.newObject();
json1.put("j1",json2);

 

 

 

이런 식이다. 간단한거 같은데 많이 헷갈린다;;

 

 

 

 

 

 

반응형
반응형


유튜브에서 자주 영상을 퍼오는데 iframe은 사이트마다 막아놓은 곳이 있어 주로 Object형식인 이전소스코드로 퍼오기를 쓰고 있따.


그런데 언젠가? 부터 퍼왔는데 영상을 올리면 화면이 나오질 않았다. 왜 그런가 별 짓을 다해봤는데 왠걸..


이전소스 코드를 보니 주소가 이상하게 되어있었따.




빨간 줄을 보면 주소가 저렇게 되어있다. 그래서 앞에 http://로 바꿔주었더니 영상이 제대로 나왔다..


ex) http://www.youtube.com


왜 저렇게 되어있는지는 잘 모르겠다.



반응형
반응형

Oncreate() 부분에 


createThreadAndDialog(); 


추가해주고


밑의 소스를 추가해주면 된다.



private ProgressDialog loagindDialog; // 로딩화면 void createThreadAndDialog() { /* ProgressDialog */ loagindDialog = ProgressDialog.show(this, "다이얼로그 명", "Loading.....", true, false); Thread thread = new Thread(new Runnable() { private static final int LOADING_TIME = 2000; @Override public void run() { // 시간걸리는 처리 handler.sendEmptyMessageDelayed(0, LOADING_TIME); } }); thread.start(); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { loagindDialog.dismiss(); // 다이얼로그 삭제 // View갱신 } };


반응형
반응형


soundpool을 이용한 간단한 소리나 효과음 재생하는 방법 링크

↓↓↓↓↓↓

http://itgury.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-SoundPool-%EA%B0%84%EB%8B%A8-%EC%82%AC%EC%9A%A9-%EC%98%88%EC%A0%9C%EC%86%8C%EB%A6%AC%EC%95%8C%EB%A6%BC%EC%9D%8Craw#tb



그런데 이거대로 했는데 소리가 안났다.


검색을 해보니 나와 같은 증상을 겪은 사람들이 올린 글의 댓글에 해결책을 찾았다.

여기에 해결책이 있었다.

↓↓↓↓↓↓

http://www.androidpub.com/1228909




천상룡섬님과 커널제로님의 해결책이었는데


원인은 


"해당 문제는 말 그대로 sound pool이 음원 재생 전 load 단계에서 준비가 되지 않아 발생한 문제입니다."


라고 한다.


그래서 커널제로님이 그 해결코드를 올려주셨는데 load가 될때까지 sleep으로 시간을 주었다.

해보니까 소리가 났다!!


이런 분들 정말 좋으신 분들이다.

복 받으시길..대박




반응형

리눅스 vi/vim 단축키 모음

2013. 10. 22. 19:04
반응형

키보드 이미지로 아주 잘 정리되어있다.


능력자 분들은 언제나 대단하다.


https://www.google.co.kr/search?safe=off&hl=ko&site=imghp&tbm=isch&source=hp&biw=1304&bih=737&q=vim+%EB%8B%A8%EC%B6%95%ED%82%A4&oq=vim+%EB%8B%A8%EC%B6%95%ED%82%A4&gs_l=img.3..0j0i24.1671.7547.0.7553.34.17.4.13.7.0.178.1686.7j9.16.0....0...1ac.1j4.29.img..16.18.809.S6ZsUyOKYJ0


위 링크를 누르면 키보드 이미지가 굉장히 많다. 맘에 드는거 하나 골라서 프린트 해놓으면 유용할 듯 싶다.






반응형
반응형



vim을 처음 다루는데 마우스를 쓸 수 없다는 핸디캡이 멘붕이 왔다.


복사도 자유자재로 하고 싶은데 못했다.


찾아보니 있긴한데 키보드로만 하기 너무 불편하다.



게다가 방향키도 안 먹힌다.ㅡㅡ (최신버전의 vim에서는 가능하나 구 버전에서는 커서는 움직이는데 복사할 때 먹히지 않는다. )


방향키

 h : 왼쪽방향

 j : 아래방향

 k : 위 방향

 : 오른쪽 방향



소문자 v 


소문자 v를 누르면 왼쪽 하단에 비주얼 이라고 뜬다.

(영문버전은 visual이라고 뜸)





그럼 커서를 움직이면 블록이 선택되는데 복사할 부분을 블록한다.





그런 다음 y를 누른다. 그럼 블록이 없어지는데 복사가 된 것이다.

그런다음 붙여넣을 곳으로 가서 p를 누른다.





그럼 이렇게 복사가 된다.



또 다른 방법은 


쉬프트+v  즉 대문자 Y를 누르면 비주얼 라인이라고 뜨는데 

소문자 y처럼 한 글자 선택이 안되고 그냥 줄이 선택된다.



그리고 복사방법은 위와 동일





그리고 컨트롤+v 를 누르면 비주얼 블록이라고 뜨고 

예쁘게 블록 선택이 된다.




지울 때는 d 누르기




요약


1. v를 눌러서 복사할 코드를 선택한 후

2. y를 누른다.

3. 붙여넣을 자리로 커서 이동

4. p를 누른다.




반응형
반응형



데이터가 시간 내에 얼마나 들어왔나 보고 싶을때 시간 검색, 기간 검색이 가능하다



 select * from music 

where

 (type='song' or type='album')

 and 

created_date > DATE_ADD(now(), INTERVAL -1 hour);



music 테이블에서 type이 song 또는 album 인 데이터가 지난 1시간 동안 얼마나 들어왔는지 검색


-1~ -24 까지 하면 최근 한 시간 부터 24시간까지 검색이 가능


이런 식으로 끝에

-1 hour  최근 한 시간

-1 day 최근 하루

-1 month 최근 한달




 select * from music

 where 

created_date between '2013-10-10' and '2013-10-14';


10일부터 14일까지 검색




반응형
반응형

$line = str_replace("#","*",$line);

//$line 에서 #.을 ""로 치환



trim(substr($line,0,2)

//0부터 2까지 문자열을 자르고 앞 뒤 공백 제거



$valueArr = explode("|",$value);

// | 기준으로 문자열 분리하여 배열저장





반응형

'지식메모 > PHP' 카테고리의 다른 글

php 문자열 공백제거하기  (1) 2013.11.13
게시판 글 번호 구하기  (2) 2013.08.13
게시판 페이징 구현하기  (44) 2013.08.12
날짜 출력 함수 사용하기  (0) 2013.08.05
문자열 잘라쓰기  (0) 2013.08.05

+ Recent posts