あなたは過去に大きな助けをしてくれましたので、私はあなたがこれを手伝ってくれることを願っています。だから現在、私はsoapuiを使ってJsonペイロードを取得するプロジェクトで働いています。私はいくつかのアサーションを作成する必要があり、その中には共通するものが1つしかない複数のノードを見る必要があります。その1つは、ノードの1つの最初の部分です。SOAPUIに基本JSONパス式の部分文字列メソッドがありますか?
私が探しているのは、JSONPath用の何らかのサブストリングコマンドです。ここに私が探しているものの例があります。
"BurgerJoints": [
{
"JointName": "Bob's Burgers",
"Price": 5
},
{
"JointName": "Bob's Broiler Stand",
"Price": 5
},
{
"JointName": "Burger King",
"Price": 5
},
{
"JointName": "Bob's Beef Haven",
"Price": 5
},
{
"JointName": "Super Weenie Hut",
"Price": 5
}
]
私の例では、ボブのものであるすべてのジョイントを探しています。だから私の最初の考えは、私にノードを与えるために BurgerJoints [?(@。Substring(JointName、0,3)== "Bob")] のようにすることでした。しかし、それは動作しなかったように見えます。誰かが私の構文が間違っていた場所を教えてもらえますか、そうしないといけない場合は、私の目標を達成するのに最高のものは何ですか?
ありがとうございました!
EDIT:
だから私はそれを行うにはGroovyscriptを使用してみましたし、私は私が近い得ていると思いますが、どこかのリストが移入されていません。ここでは、私が使用しているコードは
//imports
import groovy.json.JsonSlurper
//grab the response
def ResponseMessage = messageExchange.response.responseContent
//define a JsonSlurper
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())
def jsonlist =[]
def i = 0
while (jsonSlurper.BurgerJoints[i] != null)
{
if(jsonSlurper.BurgerJoints[i].JointName.toString().substring(0,3)=="Bob")
{
jsonlist.add(jsonSlurper.BurgerJoints[i])
}
i++
}
def jsonlist2 = new JsonSlurper().parseText(jsonlist.toListString())
assert jsonlist2.size()==3
まだ残念ながら働いていません。
から等しいかどうかを検証それの問題を完全または一部のみに示す応答ですか?なぜなら、応答に 'jsonSlurper.PriceListItems'が見つかりませんでしたが、groovyスクリプトには' while'ループのスクリプトがあります。 – Rao
私はappologize、私は私の状況に一致するように私の実際の使用されるコードを変更しました。私は基本的には、データベースからオブジェクト名や実際のデータを使用していない。だからPriceListItemsはバーガージョイントでなければなりません。私は自分のコードを変更して、今すぐ正しいはずです。 –