如题所述
ããç¨org.json以åè°·ææä¾gsonæ¥è§£æjsonæ°æ®çæ¹å¼æ´å¥½ä¸äºã
ããå®åä¸é常éç¨ä»¥ä¸å ç§æ¹å¼è§£æjsonæ°æ®ï¼
ãã1ãorg.jsonå ï¼å·²ç»éæå°android.jarä¸äºï¼
ãã2ãgoogleæä¾çgsonåº
ãã3ãé¿éå·´å·´çfastjsonåº
ãã4ãjson-lib
ãã以GoogleåºåçGson为ä¾ï¼å ·ä½æ¥éª¤ä¸ºï¼
ãã1ãé¦å ï¼ä» code.google.com/p/google-gson/downloads/listä¸è½½GsonAPIï¼
ããgoogle-gson-1.7.1-release.zip ægson-1.7.jar copyå°libsï¼é¡¹ç®æ ¹ç®å½æ°å»ºä¸ä¸ªlibsæ件夹ï¼ä¸ã å¯ä»¥ä½¿ç¨ä»¥ä¸ä¸¤ç§æ¹æ³è§£æJSONæ°æ®ï¼éè¿è·åJsonReader对象解æJSONæ°æ®ã
ãã代ç å¦ä¸ï¼
ããString jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
ããtry{
ããJsonReader reader = new JsonReaderï¼new StringReaderï¼jsonDataï¼ï¼ï¼
ããreader.beginArrayï¼ï¼ï¼
ããwhileï¼reader.hasNextï¼ï¼ï¼{
ããreader.beginObjectï¼ï¼ï¼
ããwhileï¼reader.hasNextï¼ï¼ï¼{
ããString tagName = reader.nextNameï¼ï¼ï¼
ããifï¼tagName.equalsï¼"username"ï¼ï¼{
ããSystem.out.printlnï¼reader.nextStringï¼ï¼ï¼ï¼
ãã}
ããelse ifï¼tagName.equalsï¼"userId"ï¼ï¼{
ããSystem.out.printlnï¼reader.nextStringï¼ï¼ï¼ï¼
ãã}
ãã}
ããreader.endObjectï¼ï¼ï¼
ãã}
ããreader.endArrayï¼ï¼ï¼
ãã}
ããcatchï¼Exception eï¼{
ããe.printStackTraceï¼ï¼ï¼
ãã}
ãã2ã使ç¨Gson对象è·åUser对象æ°æ®è¿è¡ç¸åºçæä½ï¼
ãã代ç å¦ä¸ï¼
ããType listType = new TypeToken<LinkedList<Userãï¼ï¼{}.getTypeï¼ï¼ï¼
ããGson gson = new Gsonï¼ï¼ï¼
ããLinkedList<User> users = gson.fromJsonï¼jsonData, listTypeï¼ï¼
ããfor ï¼Iterator iterator = users.iteratorï¼ï¼ï¼ iterator.hasNextï¼ï¼ï¼ï¼ {
ããUser user = ï¼Userï¼ iterator.nextï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUsernameï¼ï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUserIdï¼ï¼ï¼ï¼
ãã}
ãã3ãå¦æè¦å¤ççJSONå符串åªå å«ä¸ä¸ªJSON对象ï¼åå¯ä»¥ç´æ¥ä½¿ç¨fromJsonè·åä¸ä¸ªUser对象ï¼
ãã代ç å¦ä¸ï¼
ããString jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
ããGson gson = new Gsonï¼ï¼ï¼
ããUser user = gson.fromJsonï¼jsonData, User.classï¼ï¼
ããSystem.out.printlnï¼user.getUsernameï¼ï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUserIdï¼ï¼ï¼ï¼
ããå®åä¸é常éç¨ä»¥ä¸å ç§æ¹å¼è§£æjsonæ°æ®ï¼
ãã1ãorg.jsonå ï¼å·²ç»éæå°android.jarä¸äºï¼
ãã2ãgoogleæä¾çgsonåº
ãã3ãé¿éå·´å·´çfastjsonåº
ãã4ãjson-lib
ãã以GoogleåºåçGson为ä¾ï¼å ·ä½æ¥éª¤ä¸ºï¼
ãã1ãé¦å ï¼ä» code.google.com/p/google-gson/downloads/listä¸è½½GsonAPIï¼
ããgoogle-gson-1.7.1-release.zip ægson-1.7.jar copyå°libsï¼é¡¹ç®æ ¹ç®å½æ°å»ºä¸ä¸ªlibsæ件夹ï¼ä¸ã å¯ä»¥ä½¿ç¨ä»¥ä¸ä¸¤ç§æ¹æ³è§£æJSONæ°æ®ï¼éè¿è·åJsonReader对象解æJSONæ°æ®ã
ãã代ç å¦ä¸ï¼
ããString jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
ããtry{
ããJsonReader reader = new JsonReaderï¼new StringReaderï¼jsonDataï¼ï¼ï¼
ããreader.beginArrayï¼ï¼ï¼
ããwhileï¼reader.hasNextï¼ï¼ï¼{
ããreader.beginObjectï¼ï¼ï¼
ããwhileï¼reader.hasNextï¼ï¼ï¼{
ããString tagName = reader.nextNameï¼ï¼ï¼
ããifï¼tagName.equalsï¼"username"ï¼ï¼{
ããSystem.out.printlnï¼reader.nextStringï¼ï¼ï¼ï¼
ãã}
ããelse ifï¼tagName.equalsï¼"userId"ï¼ï¼{
ããSystem.out.printlnï¼reader.nextStringï¼ï¼ï¼ï¼
ãã}
ãã}
ããreader.endObjectï¼ï¼ï¼
ãã}
ããreader.endArrayï¼ï¼ï¼
ãã}
ããcatchï¼Exception eï¼{
ããe.printStackTraceï¼ï¼ï¼
ãã}
ãã2ã使ç¨Gson对象è·åUser对象æ°æ®è¿è¡ç¸åºçæä½ï¼
ãã代ç å¦ä¸ï¼
ããType listType = new TypeToken<LinkedList<Userãï¼ï¼{}.getTypeï¼ï¼ï¼
ããGson gson = new Gsonï¼ï¼ï¼
ããLinkedList<User> users = gson.fromJsonï¼jsonData, listTypeï¼ï¼
ããfor ï¼Iterator iterator = users.iteratorï¼ï¼ï¼ iterator.hasNextï¼ï¼ï¼ï¼ {
ããUser user = ï¼Userï¼ iterator.nextï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUsernameï¼ï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUserIdï¼ï¼ï¼ï¼
ãã}
ãã3ãå¦æè¦å¤ççJSONå符串åªå å«ä¸ä¸ªJSON对象ï¼åå¯ä»¥ç´æ¥ä½¿ç¨fromJsonè·åä¸ä¸ªUser对象ï¼
ãã代ç å¦ä¸ï¼
ããString jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
ããGson gson = new Gsonï¼ï¼ï¼
ããUser user = gson.fromJsonï¼jsonData, User.classï¼ï¼
ããSystem.out.printlnï¼user.getUsernameï¼ï¼ï¼ï¼
ããSystem.out.printlnï¼user.getUserIdï¼ï¼ï¼ï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-10-28
1.java中所有的对象都是object子类,数组也是2.array在json中使用[]3.一般不判断属性是什么,都是先定义好,然后直接使用object或者array4.如果有不同情况,可以添加2个属性,一个object,另一个array本回答被网友采纳