2017-04-25 65 views
0

我如何能分析一個JSONArray當從web服務的響應被格式化爲這樣:如何解析JSONArray的Android

<?xml version="1.0" encoding="UTF-8"?> 
 
<string xmlns="http://www.somewebsite.com/"><PricingTier ANo='' MsgFlg=''><Group Type='Mouldings'><CurTier>BRZ</CurTier><NxtTier>SIL</NxtTier><CurTierFrom>$4,000</CurTierFrom><CurTierTo>$9,999</CurTierTo><NxtTierFrom>$10,000</NxtTierFrom><NxtTierTo>$14,999</NxtTierTo><CurSales>$2,107</CurSales><ReqSales>$7,893</ReqSales><MsgFull></MsgFull><MsgPart></MsgPart></Group><Group Type='Accessories'><CurTier>BAS</CurTier><NxtTier>GLD</NxtTier><CurTierFrom>$0</CurTierFrom><CurTierTo>$1,499</CurTierTo><NxtTierFrom>$1,500</NxtTierFrom><NxtTierTo>$4,999</NxtTierTo><CurSales>$125</CurSales><ReqSales>$800</ReqSales><MsgFull></MsgFull><MsgPart></MsgPart></Group></PricingTier></string>

當我運行我的應用程序,我得到一個錯誤說「無法將字符串轉換爲JSONObject「。我知道它不喜歡如何對字符串響應進行格式化,所以我想知道我可以將響應格式(JSON_DATA)格式化爲解析器可以正確使用的內容。

代碼:

if (JSON_DATA != null) { 

      try { 
       JSONObject reader = new JSONObject(JSON_DATA); 

       JSONArray Group = reader.getJSONArray("Group"); 

       for (int i = 0; i < Group.length(); i++) { 
        JSONObject g = Group.getJSONObject(i); 

        final String Type = g.getString("-Type"); 
        final String CurTier = g.getString("CurTier"); 
        final String NxtTier = g.getString("NxtTier"); 
        final String CurTierFrom = g.getString("CurTierFrom"); 
        final String CurTierTo = g.getString("CurTierTo"); 
        final String NxtTierFrom = g.getString("NxtTierFrom"); 
        final String NxtTierTo = g.getString("NxtTierTo"); 
        final String CurSales = g.getString("CurSales"); 
        final String ReqSales = g.getString("ReqSales"); 

        fragment.getActivity().runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          tvType.setText(Type); 
          tvCurTier.setText(CurTier); 
          tvNxtTier.setText(NxtTier); 
          tvCurTierFrom.setText(CurTierFrom); 
          tvCurTierTo.setText(CurTierTo); 
          tvNxtTierFrom.setText(NxtTierFrom); 
          tvNxtTierTo.setText(NxtTierTo); 
          tvCurSales.setText(CurSales); 
          tvReqSales.setText(ReqSales); 
         } 
        }); 
       } 
+0

您的輸入是在xml請參考此答案如何將xml字符串轉換爲JSONObject:http://stackoverflow.com/a/18339178/5245903 –

+0

謝謝,我不小心調用了錯誤的URL。 –

回答

0

URL目標是web服務,而不是Web代理。因此結果是XML而不是JSON。