'활용'에 해당되는 글 2건

  1. PHP json_encode 활용하기
  2. Android Shared Preferences(데이터 저장/불러오기) 활용하기

PHP에서는 배열을 JSON으로 변환할 수 있는 함수가 기본적으로 내장되어 있습니다. 이것이 옵션에 따라 JSON 출력의 결과가 달라집니다.



PHP json_encode 활용하기


JSON_UNESCAPED_UNICODE

유니코드 문자열을 대상으로 Escape를 해서 \uac00 이런 식으로 보이게 하지 않습니다.


  json_encode("가나다"); // 값 : "\uac00\ub098\ub2e4"

  json_encode("가나다",JSON_UNESCAPED_UNICODE); // 값 : "가나다"



JSON_FORCE_OBJECT

배열(Array)을 Object 형태로 변환합니다.

 json_encode(array('A','B','C')); // 값 : ["A","B","C"]

 json_encode(array('A','B','C'),JSON_FORCE_OBJECT); // 값 : {"0":"A","1":"B","2":"C"}


JSON_NUMERIC_CHECK

숫자로만 되어있는 문자열을 Int 형태로 변환시켜 줍니다.

json_encode(array('123','12A')); // 출력값 : ["123","12A"]

 json_encode(array('123','12A'),JSON_NUMERIC_CHECK); // 출력값 : [123,"12A"]


JSON_HEX_TAG

< 와 >와 같은 태그 기호들이 \u003C 와 \u003E 이런 식으로 변환되게 됩니다.

     json_encode("< >"); // 출력값 : "< >"

     json_encode("< >",JSON_HEX_TAG); // 출력값 : "\u003C\u003E"


여러 개 옵션을 동시에 사용하려면 '|' 기호를 사용하여서 할 수 있습니다.


 json_encode($array, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE);


데이타를 일시적으로는 가지고 있을 수 있지만 영원히 저장하는 방법은 무었일까요? Shared Preferences 를 사용하면 가능합니다.
이 방법을 이용해서 환경설정을 만들 수도 있습니다.
           

설정 저장

            //값보관
             SharedPreferences pref =getSharedPreferences("test", MODE_PRIVATE);
             SharedPreferences.Editor editor = pref.edit();
             editor.putString("SET_1","1" ); //키값, 저장값
             editor.putString("SET_2","2" );
             editor.putString("SET_3","3" );
             editor.commit();
     
설정 불러오기
 

              //값읽기
              SharedPreferences prefs =getSharedPreferences("test", MODE_PRIVATE);
              String result = prefs.getString("SET_1", "0"); //키값, 디폴트값
                
                
              //키값없이 모든 저장값 가져오기
             SharedPreferences prefb =getSharedPreferences("test", MODE_PRIVATE);
             Collection<?> col =  prefb.getAll().values();
             Iterator<?> it = col.iterator();
                
              while(it.hasNext())
              {
                    String msg = (String)it.next();
                    Log.d("Result", msg);
              }





손가락을 누르는것보다 어려운게 있나요 :)
도움이 되셨으면 눌러주세요  :)