Android 에서 gson,jsonobject 가 JSON 을 해석 하 는 방법 에 대한 상세 한 설명

5176 단어 gsonjsonobjectjson
JSON 의 정의:
가 벼 운 데이터 교환 형식 으로 읽 을 수 있 고 빠르게 작성 할 수 있 는 특성 이 있 습 니 다.업계 의 주류 기술 은 이 를 위해 완전한 해결 방안(정규 표현 식 과 유사 하고 현재 대부분의 언어 지원 을 받 았 다)을 제공 하여 서로 다른 플랫폼 에서 데이터 교환 을 할 수 있다.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 을 해석 하 는 방법 에 대한 상세 한 설명 을 소개 하 였 으 니 여러분 께 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기