Android Jason 데이터 분석 및 표시
최근 한 앱 의 수정 작업 으로 바 쁜 와 중 에 제 이 슨 에 게 데이터 패 키 징 과 해석 을 하 는 곳 이 많다 는 것 을 알 게 되 었 습 니 다. 지금 은 작은 예 를 통 해 정리 하고 있 습 니 다.
제 이 슨 이 뭐야?가 벼 운 데이터 교환 형식 으로 읽 을 수 있 고 빠르게 작성 할 수 있 는 특성 이 있 습 니 다.업계 의 주류 기술 은 이 를 위해 완전한 해결 방안 (정규 표현 식 과 유사 하고 현재 대부분의 언어 지원 을 받 았 다) 을 제공 하여 서로 다른 플랫폼 에서 데이터 교환 을 할 수 있다.JSON 은 호환성 이 높 은 텍스트 형식 을 사용 하 는 동시에 C 언어 체계 와 유사 한 행 위 를 가진다.Json.org
Jason VS XML
> 1.JSON XML
2.JSON XML
3.JSON XML ,
4.JSON JavaScript
5.JSON XML
6.JSON XML
안 드 로 이 드 2.3 제 이 슨 분석 류
안 드 로 이 드 의 json 분석 부분 은 모두 가방 org. json 에 있 는데 주로 다음 과 같은 몇 가지 유형 이 있 습 니 다.
JSONObject:
json 대상 으로 볼 수 있 습 니 다. 이것 은 시스템 에서 JSON 정의 에 관 한 기본 단원 으로 한 쌍 의 아 (Key / Value) 수 치 를 포함 합 니 다.외부 (External: toString () 방법 으로 출력 하 는 수치) 에 대한 응답 은 표준 문자열 (예 를 들 어 {"JSON": "Hello, World"}, 가장 큰 괄호 로 둘러싸 여 있 으 며, 그 중 Key 와 Value 는 사칭 ":" 구분) 로 표 시 됩 니 다.내부 (Internal) 행동 에 대한 동작 형식 이 약간 있 습 니 다. 예 를 들 어 JSonobject 인 스 턴 스 를 초기 화하 고 내부 의 put () 방법 을 참조 하여 수 치 를 추가 합 니 다. new JSonobject (). put ("JSON", "Hello, World!") 는 Key 와 Value 사이 에 쉼표 로 구 분 됩 니 다. "Value 의 유형 은 Boolean, JSONarray, JSONobject, Number, String 또는 기본 값 인 JSONobject. NULL object 를 포함한다.
JSONStringer:
json 텍스트 구축 클래스 는 공식 적 인 해석 에 따라 빠 르 고 편리 하 게 JSON text 를 만 드 는 데 도움 을 줄 수 있 습 니 다.가장 큰 장점 은 형식 오류 로 인 한 프로그램 이상 을 줄 일 수 있다 는 점 입 니 다. 이 종 류 를 참조 하면 JSON 문법 규칙 (syntax rules) 에 따라 JSON text 를 자동 으로 엄 격 히 만 들 수 있 습 니 다.모든 JSONstringer 실 체 는 JSON text 를 만 드 는 것 에 대응 할 수 있 습 니 다.가장 큰 장점 은 형식 오류 로 인 한 프로그램 이상 을 줄 일 수 있다 는 점 입 니 다. 이 종 류 를 참조 하면 JSON 문법 규칙 (syntax rules) 에 따라 JSON text 를 자동 으로 엄 격 히 만 들 수 있 습 니 다.모든 JSONstringer 실 체 는 JSON text 를 만 드 는 것 에 대응 할 수 있 습 니 다.
JSONArray:
그것 은 질서 있 는 수 치 를 대표 한다.이 를 String 출력 (toString) 으로 변환 하 는 형식 은 괄호 로 감 싸 고 수 치 는 쉼표 로 표시 합 니 다. "구분자 (예 를 들 어 [value 1, value 2, value 3] 는 간단 한 코드 를 직접 이용 하여 그 형식 을 직관 적 으로 이해 할 수 있 습 니 다.이 종류의 내부 역시 조회 행 위 를 가지 고 있 습 니 다. get () 과 opt () 두 가지 방법 은 모두 index 색인 을 통 해 지정 한 수 치 를 되 돌려 주 고 put () 방법 으로 수 치 를 추가 하거나 교체 할 수 있 습 니 다.같은 종류의 value 유형 은 Boolean, JSONarray, JSONobject, Number, String 또는 기본 값 JSONobject. NULL object 를 포함 할 수 있 습 니 다.
JSONTokener:
json 해석 클래스
JSONException:
json 에 사용 되 는 이상.
==============================================
====================================================================================================
MyTestAPP
이 작은 예 는 JSONarray 와 JSONobject 로 데 이 터 를 분석 하 는 동시에 Android 의 동적 레이아웃 설정 ListView 와 결합 하여 String 에서 추출 한 데 이 터 를 표시 합 니 다.
텍스트 를 만 드 는 방법: Code:
// json
// {
// "phone" : ["12345678", "87654321"], //
// "name" : "yuanzhifei89", //
// "age" : 100, //
// "address" : { "country" : "china", "province" : "jiangsu" }, //
// "married" : false //
// }
try {
// {},
JSONObject person = new JSONObject();
// phone ,
JSONArray phone = new JSONArray();
phone.put("12345678").put("87654321");
person.put("phone", phone);
person.put("name", "yuanzhifei89");
person.put("age", 100);
// address ,
JSONObject address = new JSONObject();
address.put("country", "china");
address.put("province", "jiangsu");
person.put("address", address);
person.put("married", false);
} catch (JSONException ex) {
// null json (NaN, infinities)
throw new RuntimeException(ex);
}
내 앱 에서 String 은 데이터베이스 에서 추출 한 데 이 터 를 3 개 저장 합 니 다.
new JSONArray(result); 문자열 을 jason 대상 과 연결 합 니 다.
JSONobject 는 데이터 시트 로 볼 수 있 습 니 다. 뒤쪽 작업 은 옮 겨 다 니 는 부분 입 니 다.
Code:
package com.elvis.jasonlistview;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
public final String result = "[{'TypeId':1,'QId':73,'IsunAnswer':false,'QTitle':' , ()g/cm3.','Point':'10.00','EId':73,'QAnswer':'B','QAnswerCount':4,'QBody':'A.8.96
B.7.87
C.2.7
D.1.74','QMark':'','QAnswerKey':'','examKey':'E38B46B2442442F5A1'}," +
" {'TypeId':2,'QId':73,'IsunAnswer':false,'QTitle':' , ()g/cm3.','Point':'10.00','EId':74,'QAnswer':'B','QAnswerCount':4,'QBody':'A.8.96
B.7.87
C.2.7
D.1.74','QMark':'','QAnswerKey':'','examKey':'E38B46B2442442F5A1'}," +
" {'TypeId':3,'QId':73,'IsunAnswer':false,'QTitle':' , ()g/cm3.','Point':'10.00','EId':73,'QAnswer':'B','QAnswerCount':4,'QBody':'A.8.96
B.7.87
C.2.7
D.1.74','QMark':'','QAnswerKey':'','examKey':'E38B46B2442442F5A1'}]";
private JSONArray jsa;
private ListView listView;
private List data;
JSONObject obj = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
try
{
initView();
} catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void initView() throws JSONException
{
listView = new ListView(this);
data = new ArrayList();
jsa = new JSONArray(result);
String title = null;
for (int i = 0; i < jsa.length(); i++) {
obj = jsa.getJSONObject(i);
title = obj.getString("TypeId");
title += " " + obj.getString("QTitle");
data.add(title);
}
listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1,data));
setContentView(listView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
위의 코드 는 Array Adapter (Context context, int textView ResourceId, List objects) 를 사용 하여 데 이 터 를 조립 합 니 다. 이 데 이 터 를 조립 하려 면 ListView 보기 대상 과 배열 데 이 터 를 연결 하 는 어댑터 가 필요 합 니 다.
Array Adapter 의 구 조 는 this, 레이아웃 파일 세 개의 인자 가 필요 합 니 다. (이 레이아웃 파일 은 목록 의 모든 줄 의 레이아웃 을 설명 합 니 다. android. R. layot. simple list item 1 은 시스템 이 정의 한 레이아웃 파일 로 한 줄 의 텍스트 만 표시 하고 데이터 원본 (하나의 List 집합) 입 니 다.
동시에 setAdapter () 로 적합 한 마지막 작업 을 완성 합 니 다.
제 이 슨 이 Http 요청 을 하 는 표준 프로 세 스 를 첨부 합 니 다:
Code:
JSON :
HttpPost request = new HttpPost(url);
// JSON
JSONObject param = new JSONObject();
param.put("name", "rarnu");
param.put("password", "123456");
// Entry
StringEntity se = new StringEntity(param.toString());
request.setEntity(se);
//
HttpResponse httpResponse = new DefaultHttpClient().execute(request);
// , JSON
String retSrc = EntityUtils.toString(httpResponse.getEntity());
// JSON
JSONObject result = new JSONObject( retSrc);
String token = result.get("token");
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.