Mam obecnie problem z konwersjąnastępujący typ danych JSON. Próbuję wyświetlić nazwę książki i pokazać rozdziały i ich zawartość w Androidzie. Jednak otrzymuję błąd JSON.typeMismatch. Myślę, że kod jest nieprawidłowy, ale nie mogę znaleźć problemu. Poniżej dodałem mój przykładowy kod.
Pomocne będą niektóre próbki lub wskazówki. Chciałbym usłyszeć od ciebie!
(
{
"abbrev" : "abbrev"
"book" : "name"
"chapters":
(
{"1": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"2": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"3": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}}
)
}
)
Oto niektóre z moich kodów, które próbowałem. Chcę tylko uzyskać dane ciągu.
mCreateJson = new CreateJsonData(this, "sample.json");
JSONObject jsonObj = mCreateJson.getJsonObject(); ⇦ // Contains above json objects
JSONArray jsonArray;
try {
for (int i = 0; i < jsonObj.length(); i++) {
jsonArray = jsonObj.getJSONArray("chapters");
android.util.Log.d("Test", jsonArray.toString());
for(int a = 0; a < jsonArray.length(); a++ ) {
}
}
} catch (JSONException e) {
e.printStackTrace();
}
Odpowiedzi:
3 dla odpowiedzi № 1oto twój Json
{
"abbrev" : "abbrev"
"book" : "name"
"chapters":
[
{"1": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"2": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"3": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}}
]
}
i parsowanie
mCreateJson = new CreateJsonData(this, "sample.json");
JSONObject jsonObj = mCreateJson.getJsonObject(); ⇦ // Contains above json objects
JSONArray jsonArray;
try {
for (int i = 0; i < jsonObj.length(); i++) {
jsonArray = jsonObj.getJSONArray("chapters");
android.util.Log.d("Test", jsonArray.toString());
for(int a = 0; a < jsonArray.length(); a++ ) {
JSONObject js = jsonArray.getJsonObject(a);
String ss1=js.getString("1");
//and so on as your json
}
}
} catch (JSONException e) {
e.printStackTrace();
}
0 dla odpowiedzi nr 2
Twój format danych Json działa. Tak powinno być
{
"abbrev" : "abbrev",
"book" : "name",
"chapters":
[
{"1": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"2": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}},
{"3": {"1": "...", "2": "..."}}, {"2": {"1": "...", "2": "..."}}
]
}
Potem możesz użyć http://www.jsonschema2pojo.org/ aby przeanalizować dane JSON w klasy modelu i możesz użyć biblioteki GSON do przeanalizowania danych.