4

jsonPath で json の内容を読み取ろうとしたところ、エラーが発生しました。

ここでjunitテスト方法:

mockMvc.perform(get("/path")
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.id", is(1)))
                .andExpect(jsonPath("$.name", is("NAME")))
                .andReturn().getResponse().getContentAsString();

リクエストが私に返すものは次のとおりです。

[{"id":1,"name":"NAME","....}, ....}]

私はこのエラーを受け取りました:

No value for JSON path: $.id, exception: Path 'id' is being applied to an array. Arrays can not have attributes.

誰かが私を助けることができますか?

ありがとう

4

1 に答える 1

5

応答は JSON 配列を返し、それを使用してその配列のプロパティ"$.id"にアクセスしようとします。idエラーメッセージが示すように、これは不可能です。

代わりに、配列の最初の要素でidandプロパティをテストします。name

.andExpect(jsonPath("$[0].id", is(1)))
.andExpect(jsonPath("$[0].name", is("NAME")))
于 2016-02-07T09:51:02.837 に答える