android - Parse a json file -
i trying parse json list view. don't no problem? got exception telling me names must strings , must unique within object.
here code:
try { jsonstring = "{[{\"url\":\"www.200chess.com\",\"price\":\"free\",\"name\":\"200 chess opening\"},{\"url\":\"www.midgame.com\",\"price\":\"10$\",\"name\":\"mid game tachcs\"},{\"url\":\"www.303checkmate.com\",\"price\":\"20$\",\"name\":\"303 checkmate puzzles\"},{\"url\":\"www.303winning.com\",\"price\":\"30$\",\"name\":\"303 winning strategies\"},{\"url\":\"www.bibby.com\",\"price\":\"10$\",\"name\":\"bobby fusher teaches chess\"}]}"; json= new jsonobject(jsonstring); jsonarray jsonbook = json.getjsonarray(""); (int i=0; i<jsonbook.length();i++){ book book =new book(); jsonobject jsonattributes = jsonbook.getjsonobject(i).getjsonobject(""); log.i("listbooks", jsonattributes.tostring()); book.name = jsonattributes.getstring(key_name); log.i("listbooks", book.name); book.price = jsonattributes.getstring(key_price); book.url = jsonattributes.getstring(key_url); books.add(book); } } catch (jsonexception e) { e.printstacktrace(); } i got exception:
06-05 21:59:42.283: w/system.err(541): org.json.jsonexception: names must strings, [{"url":"www.200chess.com","name":"200 chess opening","price":"free"},{"url":"www.midgame.com","name":"mid game tachcs","price":"10$"},{"url":"www.303checkmate.com","name":"303 checkmate puzzles","price":"20$"},{"url":"www.303winning.com","name":"303 winning strategies","price":"30$"},{"url":"www.bibby.com","name":"bobby fusher teaches chess","price":"10$"}] of type org.json.jsonarray @ character 361 of {[{"url":"www.200chess.com","price":"free","name":"200 chess opening"},{"url":"www.midgame.com","price":"10$","name":"mid game tachcs"},{"url":"www.303checkmate.com","price":"20$","name":"303 checkmate puzzles"},{"url":"www.303winning.com","price":"30$","name":"303 winning strategies"},{"url":"www.bibby.com","price":"10$","name":"bobby fusher teaches chess"}]} 06-05 21:59:42.283: w/system.err(541): @ org.json.jsontokener.syntaxerror(jsontokener.java:446) 06-05 21:59:42.293: w/system.err(541): @ org.json.jsontokener.readobject(jsontokener.java:363) 06-05 21:59:42.293: w/system.err(541): @ org.json.jsontokener.nextvalue(jsontokener.java:96) 06-05 21:59:42.293: w/system.err(541): @ org.json.jsonobject.<init>(jsonobject.java:154) 06-05 21:59:42.293: w/system.err(541): @ org.json.jsonobject.<init>(jsonobject.java:171) 06-05 21:59:42.293: w/system.err(541): @ tn.haythem.learnchess.listbooks.getbooks(listbooks.java:157) 06-05 21:59:42.293: w/system.err(541): @ tn.haythem.learnchess.listbooks.oncreate(listbooks.java:52) 06-05 21:59:42.293: w/system.err(541): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) 06-05 21:59:42.293: w/system.err(541): @ android.app.activitythread.performlaunchactivity(activitythread.java:1611) 06-05 21:59:42.303: w/system.err(541): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1663) 06-05 21:59:42.303: w/system.err(541): @ android.app.activitythread.access$1500(activitythread.java:117) 06-05 21:59:42.303: w/system.err(541): @ android.app.activitythread$h.handlemessage(activitythread.java:931) 06-05 21:59:42.313: w/system.err(541): @ android.os.handler.dispatchmessage(handler.java:99) 06-05 21:59:42.313: w/system.err(541): @ android.os.looper.loop(looper.java:123) 06-05 21:59:42.313: w/system.err(541): @ android.app.activitythread.main(activitythread.java:3683) 06-05 21:59:42.313: w/system.err(541): @ java.lang.reflect.method.invokenative(native method) 06-05 21:59:42.313: w/system.err(541): @ java.lang.reflect.method.invoke(method.java:507) 06-05 21:59:42.313: w/system.err(541): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839) 06-05 21:59:42.313: w/system.err(541): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:597) 06-05 21:59:42.323: w/system.err(541): @ dalvik.system.nativestart.main(native method) can body please tell me wrong in code?
the array in json object has no name, not valid, e.g. should start this:
"{\"thearrayname\":[{\"url\":\"www.200chess.com\",\" ... or remove outer { , } , parse jsonarray directly e.g.:
[{\"url\":\"www.200chess.com\",\" ...
Comments
Post a Comment