2011-01-05 56 views
0

我在解码json字符串时遇到困难。下面是我的JSON字符串:Android中的Json解码

{ 
    "udeals":"[{\"vName\":\"bussinessname3\",\"vAddress\":\"address3\",\"vState\":\"Kerala\",\"vZip\":\"232\",\"vCountry\":\"Algeria\",\"id\":\"3\",\"dealCategoryID\":\"2\",\"dealCaption\":\"deal3\",\"dealurl\":\"http:\\/\\/192.168.0.8\\/ppppp\\/deals\\/deal3-3\\/\",\"dealImage\":\"http:\\/\\/192.168.0.8\\/ppppp\\/images\\/deals\\/thumb390x256\\/Duizl1.jpg\",\"dealPrice\":\"50.00\",\"dealCost\":\"100.00\",\"dealSave\":-50,\"dealOfferRate\":\"50.00\",\"jsDeadLine\":{\"seconds\":0,\"minutes\":0,\"hours\":0,\"mday\":5,\"wday\":3,\"mon\":1,\"year\":2011,\"yday\":4,\"weekday\":\"Wednesday\",\"month\":\"January\",\"0\":1294165800},\"unlockedStamp\":{\"seconds\":53,\"minutes\":56,\"hours\":18,\"mday\":5,\"wday\":3,\"mon\":1,\"year\":2011,\"yday\":4,\"weekday\":\"Wednesday\",\"month\":\"January\",\"0\":1294234013},\"description\":\"Google URL Shortener at goo.gl is used by Google products to create short URLs that can be easily shared, tweeted, or emailed to friends.\"},{\"vName\":\"bussinessname20010\",\"vAddress\":\"address20010\",\"vState\":\"Kerala\",\"vZip\":\"232\",\"vCountry\":\"Argentina\",\"id\":\"20010\",\"dealCategoryID\":\"2\",\"dealCaption\":\"deal20010\",\"dealurl\":\"http:\\/\\/192.168.0.8\\/ppppp\\/deals\\/deal20010-20010\\/\",\"dealImage\":\"http:\\/\\/192.168.0.8\\/ppppp\\/images\\/deals\\/thumb390x256\\/oCcfTj.jpg\",\"dealPrice\":\"50.00\",\"dealCost\":\"100.00\",\"dealSave\":-50,\"dealOfferRate\":\"50.00\",\"jsDeadLine\":{\"seconds\":0,\"minutes\":0,\"hours\":0,\"mday\":28,\"wday\":2,\"mon\":12,\"year\":2010,\"yday\":361,\"weekday\":\"Tuesday\",\"month\":\"December\",\"0\":1293474600},\"unlockedStamp\":{\"seconds\":53,\"minutes\":56,\"hours\":18,\"mday\":5,\"wday\":3,\"mon\":1,\"year\":2011,\"yday\":4,\"weekday\":\"Wednesday\",\"month\":\"January\",\"0\":1294234013},\"description\":\"this is\"}]" 
} 

任何一个可以请给我如何在Android的解析这样的一个解决方案...

回答

8

此JSON可以使用下面的代码解析。

str="<The Json>" 
try { 
        JSONObject jObject=new JSONObject(str); 
        JSONArray menuObject = new JSONArray(jObject.getString("udeals")); 

        for (int i = 0; i<menuObject.length(); i++) { 
         System.out.println("length="+menuObject.length()); 
         System.out.println("vName="+menuObject.getJSONObject(i) 
           .getString("vName").toString()); 
         System.out.println("vAddress="+menuObject.getJSONObject(i).getString(
           "vAddress").toString()); 
         System.out.println("vState="+menuObject.getJSONObject(i) 
           .getString("vState").toString()); 
         System.out.println("vZip="+menuObject.getJSONObject(i).getString(
           "vZip").toString()); 
         System.out.println("vCountry="+menuObject.getJSONObject(i) 
           .getString("vCountry").toString()); 
         System.out.println("dealCategoryID="+menuObject.getJSONObject(i) 
           .getString("dealCategoryID").toString()); 
         System.out.println("dealCaption="+menuObject.getJSONObject(i).getString(
           "dealCaption").toString()); 
         System.out.println("dealImage="+menuObject.getJSONObject(i) 
           .getString("dealImage").toString()); 
         System.out.println("dealPrice="+menuObject.getJSONObject(i).getString(
           "dealPrice").toString()); 
         System.out.println("dealCost="+menuObject.getJSONObject(i) 
           .getString("dealCost").toString()); 
         System.out.println("dealSave="+menuObject.getJSONObject(i).getString(
           "dealSave").toString()); 
         System.out.println("dealOfferRate="+menuObject.getJSONObject(i) 
           .getString("dealOfferRate").toString()); 
         System.out.println("jsDeadLine="+menuObject.getJSONObject(i).getString(
           "jsDeadLine").toString()); 
         jsDeadLine=menuObject.getJSONObject(i).getString("jsDeadLine").toString(); 
         JSONObject deadLine= new JSONObject(jsDeadLine); 
         String seconds = deadLine.getString("seconds"); 
         String minutes = deadLine.getString("minutes"); 
         String hours = deadLine.getString("hours"); 
         String mday = deadLine.getString("mday"); 
         String wday = deadLine.getString("wday"); 
         String mon = deadLine.getString("mon"); 
         String year = deadLine.getString("year"); 
         String yday = deadLine.getString("yday"); 
         String weekday = deadLine.getString("weekday"); 
         String month = deadLine.getString("month"); 
         System.out.println("seconds:"+seconds); 
         System.out.println("minutes:"+minutes); 
         System.out.println("hours:"+hours); 



         System.out.println("unlockedStamp="+menuObject.getJSONObject(i) 
           .getString("unlockedStamp").toString()); 

         unlockedStamp=menuObject.getJSONObject(i).getString("unlockedStamp").toString(); 
         JSONObject unlocked= new JSONObject(unlockedStamp); 
         String unlockedseconds = unlocked.getString("seconds"); 
         String unlockedminutes = unlocked.getString("minutes"); 
         String unlockedhours = unlocked.getString("hours"); 
         String unlockedmday = unlocked.getString("mday"); 
         String unlockedwday = unlocked.getString("wday"); 
         String unlockedmon = unlocked.getString("mon"); 
         String unlockedyear = unlocked.getString("year"); 
         String unlockedyday = unlocked.getString("yday"); 
         String unlockedweekday = unlocked.getString("weekday"); 
         String unlockedmonth = unlocked.getString("month"); 
         System.out.println("unlockedseconds:"+unlockedseconds); 
         System.out.println("unlockedminutes:"+unlockedminutes); 
         System.out.println("unlockedhours:"+unlockedhours); 


         System.out.println("description="+menuObject.getJSONObject(i).getString(
           "description").toString()); 
         System.out.println("id="+menuObject.getJSONObject(i) 
           .getString("id").toString()); 
         System.out.println("dealurl="+menuObject.getJSONObject(i).getString(
           "dealurl").toString()); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 



      } 




    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
+0

非常感谢。你来自卡利卡特吗? – Sayka 2016-06-09 20:28:02

5
JSONObject json = new JSONObject(yourstring); 
JSONArray jsa = json.getJSONArray("udeals"); 
.... 

这真的很容易:http://developer.android.com/reference/org/json/JSONObject.html

+0

我注意到,udeals实际上并不是一个数组,而是一个字符串(用双引号括起来)。这仍然有效吗?这可能是罗勒遇到他的问题的地方......要解决这个问题,他必须说:JSONObject obj = new JSONObject(yourstring); JSONArray arr = new JSONArray(json.getString(“udeals”));对? – ndtreviv 2011-01-05 13:45:45