2013-06-16 38 views
5

Vì vậy, tôi đang làm việc trên một dự án như thế này http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/ mà hãy để tôi hiển thị các giá trị cơ sở dữ liệu của tôi để GUI ứng dụng Android của tôi.làm thế nào để lưu mảng json để lưu trữ nội bộ android

Tôi cần lưu các giá trị cơ sở dữ liệu tôi cần vào bộ nhớ trong của Android để tôi có thể truy cập ngay cả khi ứng dụng của tôi không được kết nối với máy chủ. Bất kỳ giúp đỡ?

Cảm ơn bạn

Trả lời

3

Xem xét sử dụng một cơ sở dữ liệu địa phương để bộ nhớ cache dữ liệu máy chủ tại địa phương, đó là cách hầu hết các ứng dụng nào đó, đây là một hướng dẫn tốt cho SQLite trên android Android SQLite

Nếu bạn chỉ sử dụng một hoặc một vài JSONObject từ máy chủ bạn có thể sử dụng SharedPreferences, việc chỉnh sửa/cập nhật dễ dàng hơn và nhanh hơn nhiều. example

Để biết thêm về lưu trữ android: Android Storage

11

Bạn có thể viết toàn bộ json như chuỗi trong prefernces chia sẻ, và sau đó nhận được nó và phân tích nó để hiển thị trong giao diện ngay cả khi thiết bị đang ẩn:

String str = json.toString(); 
SharedPreferences sharedPref = getSharedPreferences("appData", Context.MODE_WORLD_WRITEABLE); 
SharedPreferences.Editor prefEditor = getSharedPreferences("appData", Context.MODE_WORLD_WRITEABLE).edit(); 
prefEditor.putString("json", str); 
prefEditor.commit(); 
+0

TinyDB đơn giản hóa phương pháp này https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo. –

1

Tôi đang làm việc trên một ứng dụng kết nối với cơ sở dữ liệu php-mysql trong máy chủ của chúng tôi, thay vì lưu kết quả truy vấn trong một tệp, bạn nên lưu nó (ít nhất đó là những gì tôi nghĩ như vậy) trong Android nội bộ Cơ sở dữ liệu (sqlite). Có rất nhiều thông tin về cơ sở dữ liệu trong Android.

Với example này bạn có thể tham khảo cách dễ dàng sử dụng SQLite và ContentProviders (một cách sạch của truy cập dữ liệu được lưu trong cơ sở dữ liệu của bạn.

Để tiết kiệm correcty một JSONArray trong cơ sở dữ liệu của bạn tôi khuyên bạn nên sử dụng Jackson thư viện Để tạo các đối tượng từ JSON giúp dễ dàng lưu lại các đối tượng

Cuối cùng nếu lượng thông tin tương đối nhỏ, bạn có thể sử dụng SharedPreferences, cách này có thể được truy cập nhanh hơn vì nó được lưu trong bộ nhớ di động

Ho pe nó giúp :)

5

Nếu bạn chọn cơ sở dữ liệu địa phương sqlite làm giải pháp của bạn, tôi đã viết một tiện ích nhẹ để lưu json của bạn vào một sqlite.

checkout git repo tại đây. https://github.com/wenchaojiang/JSQL

Bạn chỉ cần một dòng mã.

new JSQLite(yourJsonString, yourDB).persist(); 

Hy vọng nó giúp

1
//if you have already the json string 
    String str = json.toString(); 

    //if you want to convert list to json (with Gson): 
    //foo - will be your list 
    String str = new Gson().toJson(foo); 

    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pref_json_key", str); 
    prefEditor.apply(); 
2

Bạn có thể thử sử dụng với Realm.io Một ví dụ đơn giản như thế này:

public class City extends RealmObject { 
    private String city; 
    private int id; 
    // getters and setters left out ... 
} 

// Insert from a string 
realm.beginTransaction(); 
realm.createObjectFromJson(City.class, "{ city: \"Copenhagen\", id: 1 }"); 
realm.commitTransaction(); 

Trân trọng !!!

Các vấn đề liên quan