Android и как изменить строковый объект на объект json - PullRequest
2 голосов
/ 14 ноября 2011

Я пытаюсь получить ответ от своего сервера, используя службы restful, я возвращаю его в формате json, меняю строковую переменную, затем пытаюсь перейти от строковой переменной к объекту json, но я получаю здесь ошибкуэто мой класс, и после того, как мой класс - моя трассировка стека, а затем моя строковая переменная, возникает ошибка, когда я пытаюсь преобразовать строку в объект json, спасибо за вашу помощь:09: 53: 26.192: W / System.err (560): org.json.JSONException: Value [{"type": "HumVideoMovingImage", "location": "http://hummedia.byu.edu/watch/humvideo:0373889/","label":"Harry Potter und Orden des Phonix", "videoinfo"": {" id ":" humvideo: 0373889 "," title ":" Harry Potter und der Orden des Phonix "," высота ": 480," охват ":" BYU "," статус ":" разрешено ","subject ":" Гарри Поттер, магия "," описание ":" Лорд Волан-де-Морт ist zuruckgekehrt, doch das Zaubereiministerium tut alles, um diese Tatsache der Geme ... "," width ": 716," rights ":" shared ","language": ["de"], "runtime": 7200, "date": "2007-04-11"}}, {"type": "HumVideoMovingImage", "location": "http://hummedia.byu.edu/watch/humvideo:0330373/","label":"Harry Potter und der Feuerkelch "," videoinfo ": {" id ":" humvideo: 0330373 "," title ":" Harry Potter und der Feuerkelch "," height ": 480," охват ":" BYU "," status ": "Разрешено", "Субъект": "Гарри Поттер, магия", "Описание": "Das grosse Abenteuer beginnt, als der Feuerkelch" Гарри Поттерс "Наименование freigibt und Harry damit Teilne ...", "ширина": 716, "права"":" общий " "язык": [ "де"], "runningtime": 7200, "дата": "2005-11-18"}}, { "типа": "HumVideoMovingImage", "место":"http://hummedia.byu.edu/watch/humvideo:0304141/","label":"Harry Potter und der Gefangene von Askakan "," videoinfo ": {" id ":" humvideo: 0304141 "," title ":" Harry Potter und der Gefangene von Askaban "," высота ": 480," охват ":"BYU", "status": "позволено", "subject": "Гарри Поттер, магия", "description": "Wahrend die abscheuliche Tante Magda uber den Nachthimmel schwebt, kehrt Harry nach Hogwarts zuruck, ...", "ширина ": 716," права ":" общий " "язык": [ "де"], "runningtime": 7200, "дата": "2003-06-04"}}, { "Тип":" HumVideoMovingImage"," location ":" http://hummedia.byu.edu/watch/humvideo:0295297/","label":"Harry Potter und die Kammer Desschreckens "," videoinfo ": {" id ":" humvideo: 0295297 "," title ":" Harry Potter und die Kammer Desschreckens "," высота ": 480," охват ":" BYU "," status ":" позволено "," subject ":" Гарри Поттер, магия "," description ":" Fliegende Autos, gemeingefahrliche Baume "und die Warnung eines mysteriosen Hauselfen - так что начинайте fu ... "," width ": 716," rights ":" shared "," language ": [" de "]," runtime ": 7200," date ":"2002-11-15 "}}, {" type ":" HumVideoMovingImage "," location ":" http://hummedia.byu.edu/watch/humvideo:0241527/","label":"Harry Potter und der Stein der Weisen "," videoinfo ": {" id ":" humvideo: 0241527 ","title ":" Harry Potter und der Stein der Weisen "," высота ": 480," охват ":" BYU "," status ":" позволено "," subject ":" Гарри Поттер, магия "," описание ":"In der zauberhaften Verfilmung JK Rowlings Weltbestseller erfahrt Harry Potter a seinem 11. Gebur ...", "width": 716, "rights": "shared", "language": ["de"], "runtime": 7200, "date": "2001-11-16"}}] типа org.json.JSONArray невозможно преобразовать в JSONObject 11-14 09: 53: 26.232: W / System.err (560): at org.json.JSON.typeMismatch (JSON.java:111) 11-14 09: 53: 26.242: W / System.err (560): в org.json.JSONObject. (JSONObject.Java: 158) 11-14 09: 53: 26.252: W / System.err (560): at org.json.JSONObject. (JSONObject.java:171) 11-14 09: 53: 26.262: W / System.err(560): в de.vogella.android.asynctask.ReadWebpageAsyncTask $ DownloadWebPageTask.doInBackground (ReadWebpageAsyncTask.java:56) 11-14 09: 53: 26.332: W / System.err (560): в de.vogella.android.asynctask.ReadWebpageAsyncTask $ DownloadWebPageTask.doInBackground (ReadWebpageAsyncTask.java:1) 11-14 09: 53: 26.352: W / System.err (560): на android.os.AsyncTask $ 2.call (AsyncTask): java14 09: 53: 26.372: W / System.err (560): at java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:305) 11-14 09: 53: 26.382: W / System.err (560): на java.util.concurrent.FutureTask.run (FutureTask.java:137) 11-14 09: 53: 26.392: W / System.err (560): на android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:208) 11-1409: 53: 26.402: W / System.err (560): по адресу java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) 11-14 09: 53: 26.412: W / System.err (560):в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) 11-14 09: 53: 26.422: W / System.err (560): в java.lang.Thread.run (Thread.java:856) 11-14 09: 53: 34.635: D / dalvikvm (169): GC_CONCURRENT освобожден 396K, 7% свободен 7350K / 7879K, приостановлен 21ms + 9ms

строковая переменная:

[{"type": "HumVideoMovingImage",
"videoinfo": {"status": "позволено",
"description": "Лорд Волдеморт ist zuruckgekehrt, doch das Zaubereiministerium tut alles, ум"diese Tatsache der Geme ... ",
" высота ": 480," охват ":" BYU "," дата ":" 2007-04-11 "," id ":" humvideo: 0373889 ",
"subject": "Гарри Поттер, магия", "language": ["de"],
"rights": "shared", "title": "Harry Potter und der Orden des Phonix", "runtime": 7200, "width": 716}, "location": "http://hummedia.byu.edu/watch/humvideo:0373889/"," label ":" Harry Potter und der Orden desPhonix "}, {
" type ":" HumVideoMovingImage "," videoinfo ": {
" status ":" позволено "," description ":" Начало работы с новым продуктом, als der Feuerkelch Harry Potters Namen freigibt undHarry damit Teilne ... "," height ": 480," охват ":" BYU "," date ":" 2005-11-18 "," id ":" humvideo: 0330373 "," subject ":" ГарриПоттер, магия ",
" language ": [" de "]," rights ":" shared ",
" title ":" Harry Potter und der Feuerkelch ",
" runtime ": 7200,"width": 716},
"location": "http://hummedia.byu.edu/watch/humvideo:0330373/",
" label ":" Harry Potter und der Feuerkelch "}, {" type ":" HumVideoMovingImage "," videoinfo ": {
" status":" разрешено "," описание ":" Wahrend die abscheuliche Tante Magda uber den Nachthimmel schwebt, kehrt Harry nach Hogwarts zuruck, ... ", height": 480,
"охват": "BYU", "date ":" 2003-06-04 ",
" id ":" humvideo: 0304141 "," subject ":" Гарри Поттер, магия "," language ": [" de "]," rights ":"shared "," title ":" Harry Potter und der Gefangene von Askaban "," время выполнения ": 7200," ширина ": 716
}, "location": "http://hummedia.byu.edu/watch/humvideo:0304141/"," label ":" Harry Potter und der Gefangene von Askaban "},
{" type ":" HumVideoMovingImage "," videoinfo ": {" status ":" позволено ","description": "Fliegende Autos, gemeingefahrliche Baume und die Warnung eines mysteriosen Hauselfen - so beginnt fu ...", "высота": 480, "охват": "BYU", "дата": "2002-11-15", "id": "humvideo: 0295297", "subject": "Harry Potter, magic",
"language": ["de"], "rights": "shared",
"title":"Harry Potter und die Kammer Desschreckens",
"время выполнения": 7200, "width": 716},
"location": "http://hummedia.byu.edu/watch/humvideo:0295297/",
" label ":" Harry Potter und die Kammer Desschreckens "},
{"type": "HumVideoMovingImage", "videoinfo": {"status": "разрешено", "description": "In der zauberhaften Verfilmung JK Rowlings Weltbestseller erfahrt Harry Potter seinem 11. Gebur ...","height": 480, "охват": "BYU", "date": "2001-11-16", "id": "humvideo: 0241527", "subject": "Гарри Поттер, магия",
"language": ["de"], "rights": "shared",
"title": "Haрри Поттер и дер Штайн дер Вайзен ",
"runtime": 7200, "width": 716},
"location": "http://hummedia.byu.edu/watch/humvideo:0241527/",
" label ":" Harry Potter und der Stein der Weisen "}

    ]

пытаясь использовать следующий код: JSONObject jObject = new JSONObject (response);

Я все еще получаю ошибку, вот трассировка стека:

11-14 10: 03: 02.713:W / System.err (622): org.json.JSONException: Value [{"type": "HumVideoMovingImage", "location": "http://hummedia.byu.edu/watch/humvideo:0373889/","label":"Harry Potter und der Orden des Phonix", "videoinfo": {"id": "humvideo: 0373889", "title": "Harry Potter und der Orden des Phonix", "высота": 480, "охват": "BYU", "status": "позволено", "subject": "Гарри Поттер, magic "," description ":" Лорд Волан-де-Морт ist zuruckgekehrt, doch das Zaubereiministerium tut alles, um diese Tatsache der Geme ... "," width ": 716," rights ":" shared "," language ": ["de "]," runtime ": 7200," date ":" 2007-04-11 "}}, {" type ":" HumVideoMovingImage "," location ":" http://hummedia.byu.edu/watch/humvideo:0330373/","label":"Harry Potter und der Feuerkelch "," videoinfo ": {"id": "humvideo: 0330373", "title": "Harry Potter und der Feuerkelch", "height": 480, "охват": "BYU", "status": "разрешено", "subject": "Гарри Поттер, магия", "description": "Начало игры, настоящее время Гарри Поттерс Намен фрейбибт и Гарри дэйм Тейльн ...","ширина": 716, "права": "общие", "язык": [ "де"], "runningtime": 7200, "дата": "2005-11-18"}}, { "Тип":»HumVideoMovingImage "," location ":" http://hummedia.byu.edu/watch/humvideo:0304141/","label":"Harry Potter und der Gefangene von Askaban "," videoinfo ": {" id ":" humvideo: 0304141 "," title ":" Harry Potter und der Gefangene von Askaban "," height "": 480," охват ":" BYU "," status ":" позволено "," subject ":" Гарри Поттер, магия "," description ":" Wahrend die abscheuliche Tante Magda uber den Nachthimmel schwebt, kehrt Harry nach Hogwartszuruck, ... "," width ": 716," rights ":" shared "," language ": [" de "]," runtime ": 7200," date ":" 2003-06-04 "}}, {"type": "HumVideoMovingImage", "location": "http://hummedia.byu.edu/watch/humvideo:0295297/","label":"Harry Potter und die Kammer Desschreckens", "videoinfo": {"id": "humvideo: 0295297", "title": "Harry Potter und die Kammer"Desschreckens "," высота ": 480," охват ":" BYU "," status ":" позволено "," subject ":" Гарри Поттер, магия "," descriptio "n ":" Fliegende Autos, gemeingefahrliche Baume und die Warnung eines mysteriosen Hauselfen - так начинайте fu ... "," width ": 716," rights ":" shared "," language ": [" de "]," runtime": 7200," date ":" 2002-11-15 "}}, {" type ":" HumVideoMovingImage "," location ":" http://hummedia.byu.edu/watch/humvideo:0241527/","label":"Harry Potter und der Stein der Weisen "," videoinfo ": {" id":" humvideo: 0241527 "," title ":" Harry Potter und der Stein der Weisen "," height ": 480," охват ":" BYU "," status ":" позволено "," subject ":" ГарриПоттер, магия "," описание ":" In der zauberhaften Verfilmung JK Rowlings Weltbestseller erfahrt Harry Potter a seinem 11. Gebur ... "," width ": 716," rights ":" shared "," language ": ["de "]," runtime ": 7200," date ":" 2001-11-16 "}}] типа org.json.JSONArray нельзя преобразовать в JSONObject 11-14 10: 03: 02.732: W / System.err(622): at org.json.JSON.typeMismatch (JSON.java:111) 11-14 10: 03: 02.752: W / System.err (622): at org.json.JSONObject. (JSONObject.java:158) 11-14 10: 03: 02.762: W / System.err (622): at org.json.JSONObject. (JSONObject.java:171) 11-14 10: 03: 02.822: W / System.err(622): на de.vogella.android.asynctask.ReadWebpageAsyncTask $ DownloadWebPageTask.doInBackground (ReadWebpageAsyncTask.java:56) 11-14 10: 03: 02.842: W / System.err (622): на de.vogella.android.asynctask.ReadWebpageAsyncTask $ DownloadWebPageTask.doInBackground (ReadWebpageAsyncTask.java:1) 11-14 10: 03: 02.852: W / System.err (622): на android.os.AsyncTask $ 2.call (AsyncTask): java14 10: 03: 02.872: W / System.err (622): at java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:305) 11-14 10: 03: 02.892: W / System.err (622): на java.util.concurrent.FutureTask.run (FutureTask.java:137) 11-14 10: 03: 02.902: W / System.err (622): на android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:208) 11-14 10: 03: 02.912: W / System.err (622): at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) 11-14 10: 03: 02.922:W / System.err (622): в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569)11-14 10: 03: 02.942: W / System.err (622): at java.lang.Thread.run (Thread.java:856)

спасибо.

Ответы [ 2 ]

5 голосов
/ 14 ноября 2011

Вы просто должны использовать приведенный ниже код

import org.json.JSONObject;

JSONObject jObject = new JSONObject(response);

Для отдыха вы можете обрабатывать таким же образом

2 голосов
/ 14 ноября 2011

JSON, возвращаемый с сервера, является объектом Array, и трассировка стека ясно указывает на это. Попробуйте использовать org.json.JSONArray вместо org.json.JSONObject:

org.json.JSONArray jsonArray = new org.json.JSONArray(response);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...