Trang chủHướng dẫnPhân tích cú pháp JSON trong Android
Android

Phân tích cú pháp JSON trong Android

CyStack blog 4 phút để đọc
CyStack blog27/08/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 4 minutes

Android JSONObject được sử dụng để phân tích cú pháp JSON trong các ứng dụng Android. Trong hướng dẫn này, chúng ta sẽ thảo luận và triển khai một JSONObject trong ứng dụng Android của mình để phân tích cú pháp dữ liệu JSON.

Phân tích cú pháp JSON

JSON là gì?

JSON (JavaScript Object Notation) được sử dụng để trao đổi dữ liệu (đăng và truy xuất) từ máy chủ. Do đó, việc nắm vững cú pháp và khả năng sử dụng của nó là rất quan trọng.

JSON là một giải pháp thay thế tốt nhất cho XML và dễ đọc hơn đối với con người. JSON là ngôn ngữ độc lập. Nhờ tính độc lập với ngôn ngữ, chúng ta có thể lập trình JSON bằng bất kỳ ngôn ngữ nào (Java/C/C++). Một phản hồi JSON từ máy chủ bao gồm nhiều trường. Một ví dụ về phản hồi/dữ liệu JSON được đưa ra dưới đây. Chúng ta sẽ sử dụng nó như một tài liệu tham khảo và triển khai trong ứng dụng của mình.

{
  "title":"JSONParserTutorial",
  "array":[
    {
    "company":"Google"
    },
    {
      "company":"Facebook"
    },
    {
    "company":"LinkedIn"
    },
    {
      "company" : "Microsoft"
    },
    {
      "company": "Apple"
    }
    ],
    "nested":{
    "flag": true,
    "random_number":1
    }
}

Chúng tôi đã tạo một chuỗi dữ liệu JSON ngẫu nhiên từ trang này. Nó rất tiện dụng để chỉnh sửa dữ liệu JSON. Một dữ liệu JSON bao gồm 4 thành phần chính được liệt kê dưới đây:

  1. Array: Một JSONArray được đặt trong dấu ngoặc vuông ([]). Nó chứa một tập hợp các đối tượng.
  2. Object: Dữ liệu được đặt trong dấu ngoặc nhọn ({}) là một JSONObject duy nhất. Các JSONObject lồng nhau (nested) là có thể và được sử dụng rất phổ biến.
  3. Keys: Mỗi JSONObject có một chuỗi khóa (key string) chứa một giá trị nhất định.
  4. Value: Mỗi khóa có một giá trị duy nhất, có thể thuộc bất kỳ loại nào: chuỗi (string), số thực (double), số nguyên (integer), boolean, v.v.

Android JSONObject

Chúng ta sẽ tạo một JSONObject từ chuỗi dữ liệu JSON tĩnh đã cho ở trên và hiển thị JSONArray trong một ListView. Chúng ta sẽ thay đổi tên ứng dụng thành chuỗi tiêu đề trong dữ liệu JSON.

Ví dụ về phân tích cú pháp JSON trong Android

Hình ảnh dưới đây cho thấy dự án Android Studio cho ví dụ phân tích cú pháp JSON. Dự án bao gồm activity và layout mặc định (với một ListView).

android json parsing project

Code phân tích cú pháp JSON trong Android Tệp activity_main.xml được cho dưới đây.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="<https://schemas.android.com/apk/res/android>"
    xmlns:tools="<https://schemas.android.com/tools>"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.journaldev.jsonparsing.MainActivity">

    <ListView
        android:layout_width="wrap_content"
        android:id="@+id/list_view"
        android:layout_height="match_parent"/>

</RelativeLayout>

Tệp MainActivity.java được cho dưới đây.

package com.journaldev.jsonparsing;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;

import android.widget.ListView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    String json_string = "{\\n" +
            "  \\"title\\":\\"JSONParserTutorial\\",\\n" +
            "  \\"array\\":[\\n" +
            "    {\\n" +
            "    \\"company\\":\\"Google\\"\\n" +
            "    },\\n" +
            "    {\\n" +
            "      \\"company\\":\\"Facebook\\"\\n" +
            "    },\\n" +
            "    {\\n" +
            "    \\"company\\":\\"LinkedIn\\"\\n" +
            "    },\\n" +
            "    {\\n" +
            "      \\"company\\" : \\"Microsoft\\"\\n" +
            "    },\\n" +
            "    {\\n" +
            "      \\"company\\": \\"Apple\\"\\n" +
            "    }\\n" +
            "    ],\\n" +
            "    \\"nested\\":{\\n" +
            "    \\"flag\\": true,\\n" +
            "    \\"random_number\\":1\\n" +
            "    }\\n" +
            "}";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {

            ListView listView = (ListView) findViewById(R.id.list_view);

            List<String> items = new ArrayList<>();
            JSONObject root = new JSONObject(json_string);

            JSONArray array= root.getJSONArray("array");

            this.setTitle(root.getString("title"));

            for(int i=0;i<array.length();i++)
            {
                JSONObject object= array.getJSONObject(i);
                items.add(object.getString("company"));
            }

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, items);

            if (listView != null) {
                listView.setAdapter(adapter);
            }

            JSONObject nested= root.getJSONObject("nested");
            Log.d("TAG","flag value "+nested.getBoolean("flag"));

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

Chúng ta đã lặp qua đối tượng JSONArray và lấy các chuỗi có trong mỗi JSONObject con và thêm chúng vào một ArrayList được hiển thị trong ListView. Tên ứng dụng được thay đổi bằng cách:

this.setTitle();

Ví dụ về kết quả của Android JSONObject Đầu ra của ứng dụng được đưa ra dưới đây. Bạn có thể thấy tên tiêu đề đã thay đổi trong ToolBar ở trên cùng.

android json parsing output

Google đã phát hành một thư viện Volley Library để phân tích cú pháp JSON. Chúng ta sẽ triển khai thư viện đó trong các hướng dẫn sau. GSON là một thư viện Java chuyển đổi các đối tượng Java thành JSON và ngược lại. Hướng dẫn về Android JSONObject đến đây là kết thúc.

Mục tiêu của chúng tôi là cung cấp một cái nhìn tổng quan về việc phân tích cú pháp JSON trong Android, vì JSON ngày nay là tiêu chuẩn được chấp nhận để truyền dữ liệu giữa các máy chủ/ứng dụng web.

Phân tích cú pháp JSON trong Android sẽ rất hữu ích khi chúng ta phát triển các ứng dụng gửi và nhận dữ liệu từ máy chủ. Bạn có thể tải xuống dự án phân tích cú pháp JSON trong Android từ liên kết dưới đây.

Download Android JSON Parsing JSONObject Project

Nguồn tham khảo: Official Documentation

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất