2017-12-08 20 views
1

JSON requestに文字列変数を渡す必要があるところで私は立ち往生しています。JSONリクエストで文字列変数を渡す際の問題を取得する

指定されたURLは次のとおりです。上記の実行

'url' 
    def browserCall = Java.type('package.browserCall') 
    * def parameter = browserCall.method(data) //returns a string 
* def val = '{"data7":"6DW7926NC7KMQ","data8":'#(parameter)'}' 
* json param = val 
    Given path 'path' 
    * request 
    """ 
    { 
    "data1":"string", 
    "data2":"string", 
    "data3":"string", 
    "data4":"3", 
    "data5":"string", 
    "data6":param, 
    "data9":"string" 
    } 
    """ 
    When method post 
    Then status 200 

は、空手は* def val = '{"data7":"6DW7926NC7KMQ","data8":'#(parameter)'}'でスキップし、私は型変換ドキュメントを踏襲し、JSON val = 'parameter'によってJSONにdef parameter =browserCall.method(data)パラメータを変換しようとした要求にそれを渡されたが、それは動作していません。

私はまだ間違っていると思います。助けてください

答えて

0

#(foo)の評価は文字列内で行われないことに注意してください。

* def parameter = browserCall.method(data) 
* def val = { data: '6DW7926NC7KMQ', data8: '#(parameter)' } 

(編集後)

+0

は同じ試みたが、それはまだ* DEFヴァル= '{ "DATA7" "#(パラメータ)": "6DW7926NC7KMQ"、 "DATA8"}' でスキップされます。 –

+0

素早く頭がおかげてありがとう。私はあなたの解決策を試しましたが、「数値リテラルPAY-0GJ70918F1391232NLIVLD7Qの後にスペースがありません」というエラーが表示されます これは「#(パラメータ)」から取得したのと同じ動的文字列です。私は前に同じエラーがあったが、無知だった。 –

+0

パラメータはJSONではありません。これはjavaコードからの文字列値です。この文字列 'Parameter'はJSONリクエストで使用する必要があります。 –

関連する問題