지금까지는 리턴값으로 String 을 사용해서 안드로이드에서 Response를 받았습니다.
이번 시간에는 https://www.youtube.com/channel/UCAyftOCC5eq1rbbs7lS_bLg 유투브 동영상중에서
Android JSON Parser from URL - Android Studio 2015 : https://www.youtube.com/watch?v=PRQvn__YkCM
이 부분에서 리턴값으로 JSON을 사용해서 안드로이드에서 Respoinse를 처리하는 작업을 하도록 하겠습니다.
* 프로젝트를 위한 기본설정-1(외부 라이브러리 사용)
1. https://github.com/kosalgeek/KGJsonConverter 에서 KGJsonConverter.jar 파일을 다운로드(나중에는 자바클래스파일로 대체할 예정)
2. 안드로이드 스튜디오에서 프로젝트의 libs를 마우스 오른쪽 클릭> 라이브러리 추가 선택
3. http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.code.gson/gson/2.2.4에서 GSON 2.2.4 라이브러리를 다운로드
4. 안드로이드 스튜디오에서 프로젝트의 libs를 마우스 오른쪽 클릭> 라이브러리 추가 선택(구글JSON파서클래스 입니다.)
또는 의존성에 탭에서 "com.google.code.gson:gson:2.2.4" 를 컴파일 추가
/* 기본사용법 */
ArrayList<ModelClass> userList = new JsonConverter<ModelClass>().toArrayList(jsonString, ModelClass.class);
List<ModelClass> userList = new JsonConverter<ModelClass>().toList(jsonString, ModelClass.class);
/* 샘플코드(Model 클래스) */
import com.google.gson.annotations.SerializedName;
public class Product {
@SerializedName("id")
public Integer id;
@SerializedName("name")
public String name;
@SerializedName("username")
public String username;
@SerializedName("password")
public String password;
}
/* 샘플코드(Controller 클래스) */
String jsonString = "[{\"id\":\"1\",\"name\":\"김일국\",\"username\":\"kimilguk1\",\"password\":\"kim1\"}]";
ArrayList<Users> users =
new JsonConverter<Users>().toArrayList(jsonString, User.class);
//test output result
String output = "";
for(Users u: users){
output += "id: " + u.id;
output += ", name: " + u.name;
output += ", username: " + u.username;
output += ", password: " + u.password;
}
Toast.makeText(this, output, Toast.LENGTH_LONG).show()
========================================================
* 프로젝트를 위한 기본설정-2(테이블 생성)
// 이전 프로젝트의 tbl_client 테이블을 공통으로 사용합니다.
========================================================
* 프로젝트를 위한 기본설정-3(PHP파일 생성)
파일명:
<?php
header("Content-Type: text/html; charset=UTF-8");
include_once("connection.php");//이전 프로젝트와 공통으로 사용합니다.
mysqli_query($conn, "SET NAMES utf8");//Json출력 한글문제로 추가
if( isset($_GET['format']) && $_GET['format'] == "json" ) {
$query = "SELECT * FROM tbl_client ";
$result = mysqli_query($conn, $query);
$list = array();
while($row = $result->fetch_array(MYSQL_ASSOC) ) {
$list[] =
array(
'id'=>$row['id']
,'name'=>urlencode($row['name'])//한글출력문제로 urlencode 추가
,'username'=>$row['username']
,'password'=>$row['password']
);
}
echo urldecode(json_encode($list));//한글출력문제로 urldecode 추가
$result->close();
exit;
}
echo "add <i>?format=json</i> the end of the URL";
?>
다음시간에는 안드로드이 스튜디오에서 이전프로젝트에서 생성한 서브액티비티에서
* JSON 결과값을 안드로이드화면에 파싱하는 방법을 진행 하도록 하겠습니다.
R&D 2016 프로젝트1,2에 사용된 외부 라이브러리 분석예정 (0) | 2015.12.09 |
---|---|
R&D 2016 프로젝트2-02 Json Parser for Android를 이용한 액티비티 제작 (0) | 2015.12.09 |
R&D 2016 프로젝트1 정리 (0) | 2015.12.02 |
R&D 2016 프로젝트1-06: AndroidPHPMySql 로그인인증후 서브액티비티 이동 (0) | 2015.12.02 |
R&D 2016 프로젝트1-05: AndroidPHPMySql 메인액티비티 JAVA 작업 (0) | 2015.12.02 |
댓글 영역