>  기사  >  Java  >  자산의 로컬 JSON 파일을 Android의 ListView로 구문 분석하는 방법은 무엇입니까?

자산의 로컬 JSON 파일을 Android의 ListView로 구문 분석하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-08 18:41:02881검색

How to Parse a Local JSON File from Assets into a ListView in Android?

자산 폴더의 로컬 JSON 파일을 ListView로 구문 분석하는 방법은 무엇입니까?

로컬 자산의 JSON 파일을 구문 분석하는 것은 특히 작업할 때 Android 프로그래밍에서 일반적인 작업입니다. 정적 데이터로. 이를 효과적으로 달성하는 방법은 다음과 같습니다.

1. JSON 파일 읽기:

public String loadJSONFromAsset() {
    String json = null;
    try {
        InputStream is = getActivity().getAssets().open("formules.json");
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json = new String(buffer, "UTF-8");
    } catch (IOException ex) {
        ex.printStackTrace();
        return null;
    }
    return json;
}

이 메서드는 자산 폴더에서 "formules.json" 파일을 열고 해당 내용을 버퍼로 읽어온 후 결과 JSON 문자열을 반환합니다.

2. JSON 문자열 구문 분석:

try {
    JSONObject obj = new JSONObject(loadJSONFromAsset());
    JSONArray m_jArry = obj.getJSONArray("formules");
    ArrayList<HashMap<String, String>> formList = new ArrayList<>();
    HashMap<String, String> m_li;

    for (int i = 0; i < m_jArry.length(); i++) {
        JSONObject jo_inside = m_jArry.getJSONObject(i);
        String formula_value = jo_inside.getString("formule");
        String url_value = jo_inside.getString("url");

        //Add values to the ArrayList as follows:
        m_li = new HashMap<>();
        m_li.put("formule", formula_value);
        m_li.put("url", url_value);

        formList.add(m_li);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

여기에서는 JSON 문자열을 JSONObject로 구문 분석합니다. 그런 다음 "formules" 배열을 반복하고 "formule" 및 "url" 값을 추출합니다. 이 값을 HashMap에 저장하고 이를 ArrayList에 추가합니다.

3. ListView에 데이터 표시:

ArrayList에 데이터가 있으면 ArrayAdapter를 사용하여 이를 ListView에 표시할 수 있습니다. 적절한 컨텍스트와 레이아웃으로 ArrayAdapter를 생성하고 이를 ListView로 설정합니다.

위 내용은 자산의 로컬 JSON 파일을 Android의 ListView로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.