2011-07-07 20 views
0

文字列型を返すWCFメソッドがあります。SOAPPRIMITIVE応答の処理方法

は、これは私の出力である

{ "表1":[{ "テーブル名": "LoadDistributor"、 "説明": "ディストリビューター"、 "MandatoryFlag": "1"、 "ステータス""、 "優先度": "0"}、{"TableName": "LoadPrice"、 "Description": "Price "、 "MandatoryFlag": "1"、 "Status": ""、 "優先度": "0"}、{"TableName": "LoadProduct"、 "Description": "Product "、 "MandatoryFlag": "1"、 "Status": ""、 "Priority": "0 "}、{" TableName ": "LoadTradeSchemeDetail"、 "説明" : "TradeSchemeDeta"、 "MandatoryFlag": "1"、 "ステータス": ""、 "優先": "0"}、{ "テーブル名": 「RD.AlternativeProductDetail "、"説明 " " AltProdutDetail "、" MandatoryFlag ": " 0 "、"ステータス ":" "優先度": "0"}、{"TableName": "RD.AlternativeProductHeader"、 " "説明:" "AltProdutHeader"、 "MandatoryFlag": "0"、 "ステータス": ""優先度 ": " 0 "}、{" TableName ": " RD.BatchPriceDetail "、" Description " "BatchPrice"、 "MandatoryFlag": "1"、 "ステータス": ""優先度 ":"0"}、{"TableName": "RD.Executive"、 "Description": "Executive"、 "MandatoryFlag": "1"、 "ステータス": ""優先度 ": " 0 "、" TableName ": " RD.Route "、"説明 ":" Route "、" MandatoryFlag ":" 1 "、" Status ": " "、" Priority ":" 0 "}、 "TableName": "RD.vwRetailer"、 "説明": "小売業者"、 "MandatoryFlag": "1"、 "ステータス": ""、 "優先度": "0"}、{"TableName" : "RD.vwRouteDetail"、 "説明": "RouteDetail"、 "MandatoryFlag": "1"、 "ステータス": ""、 "優先": "0"}、{ "テーブル名": " XA.vwProdu "0"}、{"TableName": "XA.vwTown"、 "ctType"、 "Description": "ブランド製品C"、 "MandatoryFlag": "1"、 "ステータス": ""優先度 " 」、 "説明": "タウン "、 "MandatoryFlag": "1"、 "ステータス": ""、 "優先順位": "0"}]}

これは私のSOAP処理方法である

// ksoap2 calling wcf 
public SoapPrimitive soapPrimitive(String METHOD_NAME, String SOAP_ACTION, String NAMESPACE, String URL) throws IOException, XmlPullParserException { 
    SoapPrimitive responses = null; 
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); //set up request 
    request.addProperty("strExec", "7067"); 
    request.addProperty("strBusinessUnit", "HEMA"); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); //put all required data into a soap envelope 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL); 
    httpTransport.debug = true; 

    try{ 

     Log.w("Log_cat" ,"*********" + envelope.toString()); 
     httpTransport.call(SOAP_ACTION, envelope); 
     Log.w("log_tag", " ===========" +SOAP_ACTION); 

     // Object result = (Object)envelope.getResponse(); 
     // JSONArray jArray = new JSONArray(result.toString()); 
     // Log.w("log_tag", " ===*********==" +jArray); 

     responses = (SoapPrimitive)envelope.getResponse(); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 

    // Object response= envelope.getResponse(); 
    return responses; 
} 

My C#メソッドは、JSON(Stringとして)のStringを返します。

リストまたは配列でのみテーブル名を取得する方法。 私を助けてください。ここで何が間違っていますか?

答えて

3

SOAPとJSONの違いを理解していますか? kSOAPは、SOAP要求を期待してSOAP応答を返すサービスを処理するためのものです。したがって、JSONを使用して単一文字列要素を返すSOAPサービスがない場合、kSoapは必要ありません(使用できません)。 JSONを返すRESTサービスがある場合はDefaultHttpClientHttpPostdescribed for example hereと単純に使用してください。 JSONを常時使用している場合は、previous questionにも応答します。

+0

非常に有益な提案です。私の場合、JSONでString要素を返すWCFサービス。 – Piraba

+0

私の場合、SOAPを使用したいが、その戻りString要素はJSONである。今、結果は正しい方法で値を取得する方法が来ている?私を助けてください。 – Piraba

+0

私を案内してくださいこのようにSOAP値を処理する方法:{"Table1":[{"TableName": "LoadDistributor"、 "Description": "Distributor"、 "MandatoryFlag": "1"、 "Status" "Priority": "0"}]} – Piraba

関連する問題