Storing data in JSON or in SQLITE (Android)
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm building an application which needs to retrieve data objects during runtime. Each one of the objects has the same structure (couple Strings, booleans and arrays). The size of a given object is relatively small (100-1000bytes). The user will not add/remove/modify elements during runtime so no write operation will be performed on the data. I expect that in the final version the number of object will be certainly below 5000. I will need to search for a given object or filter object based on criteria.
My question is if its sensible to use a JSON file? I love that JSON supports all my datatypes natively and can be edited very easily even from Android Studio. Once I put it to my assets folder it compiles with application seamlessly.
In the other hand SQLITE has the benefits of being a database, so searching, sorting etc would be easier than with a JSON file.

add a comment |
I'm building an application which needs to retrieve data objects during runtime. Each one of the objects has the same structure (couple Strings, booleans and arrays). The size of a given object is relatively small (100-1000bytes). The user will not add/remove/modify elements during runtime so no write operation will be performed on the data. I expect that in the final version the number of object will be certainly below 5000. I will need to search for a given object or filter object based on criteria.
My question is if its sensible to use a JSON file? I love that JSON supports all my datatypes natively and can be edited very easily even from Android Studio. Once I put it to my assets folder it compiles with application seamlessly.
In the other hand SQLITE has the benefits of being a database, so searching, sorting etc would be easier than with a JSON file.

It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23
add a comment |
I'm building an application which needs to retrieve data objects during runtime. Each one of the objects has the same structure (couple Strings, booleans and arrays). The size of a given object is relatively small (100-1000bytes). The user will not add/remove/modify elements during runtime so no write operation will be performed on the data. I expect that in the final version the number of object will be certainly below 5000. I will need to search for a given object or filter object based on criteria.
My question is if its sensible to use a JSON file? I love that JSON supports all my datatypes natively and can be edited very easily even from Android Studio. Once I put it to my assets folder it compiles with application seamlessly.
In the other hand SQLITE has the benefits of being a database, so searching, sorting etc would be easier than with a JSON file.

I'm building an application which needs to retrieve data objects during runtime. Each one of the objects has the same structure (couple Strings, booleans and arrays). The size of a given object is relatively small (100-1000bytes). The user will not add/remove/modify elements during runtime so no write operation will be performed on the data. I expect that in the final version the number of object will be certainly below 5000. I will need to search for a given object or filter object based on criteria.
My question is if its sensible to use a JSON file? I love that JSON supports all my datatypes natively and can be edited very easily even from Android Studio. Once I put it to my assets folder it compiles with application seamlessly.
In the other hand SQLITE has the benefits of being a database, so searching, sorting etc would be easier than with a JSON file.


asked Jan 3 at 15:18
IstvanbIstvanb
98313
98313
It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23
add a comment |
It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23
It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23
add a comment |
2 Answers
2
active
oldest
votes
There's nothing wrong with storing data in a json file. Its easily parsable, and a common means of storing small amounts of data, like settings. The disadvantages of it for storing large amounts of data is that it doesn't provide searchability, and getting access to be as efficient would require a lot of work.
You may want split the difference and look at a document based db. They basically store JSON, but still allow querying, handle caching, etc. This is assuming you have a significant amount of data, of course.
add a comment |
why not sharedpreferences and Gson, u can save your json as list of object and implement your search methods
in your case i think that using file is the best idea, the access time to a database is much greater than that for a file
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54025099%2fstoring-data-in-json-or-in-sqlite-android%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
There's nothing wrong with storing data in a json file. Its easily parsable, and a common means of storing small amounts of data, like settings. The disadvantages of it for storing large amounts of data is that it doesn't provide searchability, and getting access to be as efficient would require a lot of work.
You may want split the difference and look at a document based db. They basically store JSON, but still allow querying, handle caching, etc. This is assuming you have a significant amount of data, of course.
add a comment |
There's nothing wrong with storing data in a json file. Its easily parsable, and a common means of storing small amounts of data, like settings. The disadvantages of it for storing large amounts of data is that it doesn't provide searchability, and getting access to be as efficient would require a lot of work.
You may want split the difference and look at a document based db. They basically store JSON, but still allow querying, handle caching, etc. This is assuming you have a significant amount of data, of course.
add a comment |
There's nothing wrong with storing data in a json file. Its easily parsable, and a common means of storing small amounts of data, like settings. The disadvantages of it for storing large amounts of data is that it doesn't provide searchability, and getting access to be as efficient would require a lot of work.
You may want split the difference and look at a document based db. They basically store JSON, but still allow querying, handle caching, etc. This is assuming you have a significant amount of data, of course.
There's nothing wrong with storing data in a json file. Its easily parsable, and a common means of storing small amounts of data, like settings. The disadvantages of it for storing large amounts of data is that it doesn't provide searchability, and getting access to be as efficient would require a lot of work.
You may want split the difference and look at a document based db. They basically store JSON, but still allow querying, handle caching, etc. This is assuming you have a significant amount of data, of course.
answered Jan 3 at 16:11
Gabe SechanGabe Sechan
68.7k965100
68.7k965100
add a comment |
add a comment |
why not sharedpreferences and Gson, u can save your json as list of object and implement your search methods
in your case i think that using file is the best idea, the access time to a database is much greater than that for a file
add a comment |
why not sharedpreferences and Gson, u can save your json as list of object and implement your search methods
in your case i think that using file is the best idea, the access time to a database is much greater than that for a file
add a comment |
why not sharedpreferences and Gson, u can save your json as list of object and implement your search methods
in your case i think that using file is the best idea, the access time to a database is much greater than that for a file
why not sharedpreferences and Gson, u can save your json as list of object and implement your search methods
in your case i think that using file is the best idea, the access time to a database is much greater than that for a file
answered Jan 3 at 16:27
Ahmed.essAhmed.ess
17318
17318
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54025099%2fstoring-data-in-json-or-in-sqlite-android%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
It looks like the DB approach is better here. In case of Json - You will have to read the entire file to find a specific object.
– Pavel B.
Jan 3 at 15:59
You can do both: sqlite.org/json1.html (assuming the sqlite library used by Android is compiled with that module enabled)
– Shawn
Jan 3 at 16:23