Android 에서 gson,jsonobject 가 JSON 을 해석 하 는 방법 에 대한 상세 한 설명
5176 단어 gsonjsonobjectjson
가 벼 운 데이터 교환 형식 으로 읽 을 수 있 고 빠르게 작성 할 수 있 는 특성 이 있 습 니 다.업계 의 주류 기술 은 이 를 위해 완전한 해결 방안(정규 표현 식 과 유사 하고 현재 대부분의 언어 지원 을 받 았 다)을 제공 하여 서로 다른 플랫폼 에서 데이터 교환 을 할 수 있다.JSON 은 호환성 이 높 은 텍스트 포맷 을 사용 하면 서도 C 언어 체계 와 유사 한 행 위 를 하고 있다.
JSON 대상:
JSON 의 대상(Object)은"{"로 시작 하여"}"로 끝 납 니 다.대상 의 모든 아 이 템 은 키-value 쌍 으로"key:value"로 표 시 됩 니 다.키-value 쌍 은 쉼표 로 구 분 됩 니 다.예 를 들 어{"name":"coolxing","age"=24,"male":true,"address":{"street":"hui LongGuan","city":"beijing","country":"china"}.JSON 대상 의 key 는 string 형식 일 수 밖 에 없습니다.그리고 value 는 string,number,false,true,null,Object 대상,심지어 array 배열 일 수 있 습 니 다.즉,포 함 된 상황 이 존재 할 수 있 습 니 다.
JSON 배열:
JSON 배열(array)은"["로 시작 하여"]"로 끝 납 니 다.배열 의 모든 요 소 는 string,number,false,true,null,Object 대상 심지어 array 배열,배열 간 요 소 는 쉼표 로 구 분 됩 니 다.예 를 들 어[coolxing",24,{"street":"huiLongGuan","city":"beijing","country":"china"}].
1.머리말
JSON 데 이 터 는 안 드 로 이 드 네트워크 개발 에서 흔히 볼 수 있 는 데이터 형식 입 니 다.JSON 데 이 터 를 분석 하 는 방법 은 여러 가지 가 있 습 니 다.
1.1 공식 테이프 JSONobject 사용
1.2 GSON,FastJSON,Jackson 을 포함 하 되 이에 국한 되 지 않 는 제3자 오픈 소스 라 이브 러 리 를 사용 하고 본 고 는 Google 이 제공 하 는 GSON 라 이브 러 리 의 사용 방법 을 소개 합 니 다.
2.JSONobject 의 사용법
2.1 예시 코드
//org.json.JSONArray;
//org.json.JSONObject;
private void parseJSONWithJSONObject(String jsonData){
try {
// json jsonData JSON , JSONArray
//jsonData ,
JSONArray jsonArray = new JSONArray(jsonData);
for (int i = 0; i< jsonArray.length(); i++) {
// , JSONObject
// getInt getString
JSONObject jsonObject = jsonArray.getJSONObject(i);
int stu_no = jsonObject.getInt("stu_no");
String stu_name = jsonObject.getString("stu_name");
String stu_sex = jsonObject.getString("stu_sex");
Log.d("MainActivity","stu_no: " + stu_no);
Log.d("MainActivity","stu_name: " + stu_name);
Log.d("MainActivity","stu_sex: " + stu_sex);
}
} catch (Exception e) {
e.printStackTrace();
}
}
2.2 문자열 jsonData 는 다음 과 같 습 니 다.그림 은 실행 결과 입 니 다.
[{ "stu_no":12345,"stu_name":"John","stu_sex":"male"
},{ "stu_no":12346,"stu_name":"Tom","stu_sex":"male"
},{"stu_no":12347,"stu_name":"Lily","stu_sex":"female"}]
3.GSON 사용법
3.1 다운로드 및 설치
•다운로드 한 gson-2.6.1.jar 를 프로젝트 디 렉 터 리->app->libs 폴 더 에 복사
3.2 방법 소개
•toJSon(params 1),들 어 오 는 대상 을 문자열 로 변환 합 니 다.
•from JSon(params 1,params 2)은 두 개의 매개 변 수 를 입력 하여 문자열 params 1 을 params 2 가 지정 한 데이터 형식 으로 변환 합 니 다.
3.3 예시 코드
3.3.1 단일 대상 에 대한 분석
public class Student {
private int stu_no;
private String stu_name;
private String stu_sex;
Student(int stu_no,String stu_name,String stu_sex){
this.stu_no = stu_no;
this.stu_name = stu_name;
this.stu_sex = stu_sex;
}
}
// , Student stu str
Student stu = new Student(123,"Tom","male");
Gson gson = new Gson();
String str = gson.toJson(stu);
// , Student
jsonData = "{ \"stu_no\":12345,\"stu_name\":\"John\",\"stu_sex\":\"male\" }";
Gson gson = new Gson();
Student student = gson.fromJson(jsonData,Student.class);
3.3.2 JSON 배열 의 해석(원생 류)
Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};
// (serialization)
// JSON
gson.toJson(ints); // ==> [1,2,3,4,5]
// JSON
gson.toJson(strings); // ==> ["abc", "def", "ghi"]
// (Deserialization)
// JSON
// ints2、string2 ints、strings
int[] ints2 = gson.fromJson("[1,2,3,4,5]", int[].class);
String[] strings2 = gson.fromJson("[\"abc\", \"def\", \"ghi\"]",String[].class);
3.3.3 JSON 배열 의 해석(사용자 정의 클래스)
// 2.2 jsonData, 3 Student
// , TypeToken
// ,students Student
Gson gson = new Gson();
List<Student> students;
students = gson.fromJson(jsonData, new TypeToken<List<Student>>(){}.getType()); // ==>[stu0,stu1,stu2]
3.4 더 많은 방법•GSON 의 간편 한 점 은 문자열 을 원생 또는 사용자 정의 대상 으로 자동 으로 표시 할 수 있어 코드 를 수 동 으로 작성 하지 않 아 도 된다 는 점 입 니 다.
•GSON 의 더 많은 방법 은 GSON 이 github 에서 의 용법 소개,README.md->user guide 를 읽 을 수 있 습 니 다.
이상 의 내용 은 안 드 로 이 드 에서 gson,jsonobject 가 JSON 을 해석 하 는 방법 에 대한 상세 한 설명 을 소개 하 였 으 니 여러분 께 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Gson 해석 빈 문자열 처리 방법앞말 실제 개발 프로젝트에서 서버는 빈 문자열 ""을 반환 결과로 빈값을 표시하는 경우가 많지만 Gson에서 문제가 발생할 수 있습니다. 만약 이 데이터의 유형이 문자열이 아니라면 Gson 해석은 오류가 발생합니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.