2013-01-25 54 views
0

我在我的android應用程序中調用asmx web服務中的web方法,並且該方法接受一個json對象。當我調試我的應用程序時,它給了我下面的異常「無法序列化1001.10」(它是我的一個類變量值)。這裏下面我通過硬編碼值發送數據(用於測試目的)如何將java對象轉換爲json對象並作爲android中的參數發送到asmx web服務?

  Item itm=new Item(); 
     ItemType itype=new ItemType(); 

    itm.Description="Good Product"; 
    itm.BarcodeNumber="1234"; 
    itm.Depreciation=(float) 100.56; 
    itm.AgencyId=1; 
    itm.ItemCode="Android"; 
    itm.ItemValue=(float) 9999.99; 
    itm.PurDate=new Date(0); //Date I am sending here... 
    itm.PurValue=(float) 1001.10; 

    itype.Itemname="Android App"; 
    itype.Make="Android Developers"; 
    itype.Model="2013 Model"; 
    itype.Year=new Date(0); 

    itm.iType=itype; 

我得到異常的itm.PurValue後「Cannont連載1001.01」(被捕獲的異常,當我調試我的應用程序)

我認爲這是由於日期格式,但由於我的Web服務接受JSON對象,我認爲錯誤可能是我發送的對象的格式。

將java對象轉換爲json對象我已將gson.jar文件添加到我的java構建路徑 - - 庫中。

並使用Gson將java對象轉換爲json字符串並將該json字符串傳遞給web服務。

當我運行它中止,並表示該應用程序「不幸的是,我的應用程序停止工作」

這裏是我的代碼,我使用的Java對象轉換成JSON字符串。

  Gson gson = new Gson(); //Exception Occurred at this point when control comes here it is giving as Invocation Target Exception 
    String json=gson.toJson(itm); 

     p.setName("ThisItem"); 
    p.setValue(json); 
    p.setType(String.class); 
    request.addProperty(p); 

和其餘的代碼是常見的...但爲了參考我在這裏粘貼該代碼。

  SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12); 
     envelope.dotNet=true; 
     envelope.setOutputSoapObject(request); 
     HttpTransportSE androidTSE=new HttpTransportSE(URL); 

     try 
     { 
      androidTSE.call(Soap_Action, envelope); 
      SoapObject response=(SoapObject) envelope.getResponse(); 
      return response.toString(); 
     } 
     catch(Exception ex) 
     { 
      return ex.toString(); 
     } 

我收到異常作爲調用目標異常,當我調試我的應用程序與上述gson代碼inculded。

可能是什麼問題?我在對象中使用的日期格式或將java對象轉換爲gson對象的格式?

最後我想說我想發送一個json對象到我的asmx web服務。我怎麼解決這個問題。請任何人都可以分享任何想法。我正在爲這個錯誤奮鬥7個小時。

在此先感謝 Ganesh神

回答

0
+0

感謝您的回覆......對於傳遞原始數據類型來說,這很好。但我的服務採用json對象作爲參數。如何將我的java對象轉換爲json對象並將其發送到asmx webservice是我的實際問題。 Samadhan Medge先生... –

0

我知道我是爲時已晚,但對別人尋找類似的答案:

我有這個錯誤,當我試圖發送一個字符到我的肥皂服務。問題出在這段代碼:

p.setName("ThisItem"); 
p.setValue(json); 
p.setType(String.class); 
request.addProperty(p); 

什麼你wo需要做的解決它是:

request.addAttribute("This Item",json); 

是的,工作!

相關問題