亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 MvcResult 獲取 json 的大小

從 MvcResult 獲取 json 的大小

阿晨1998 2023-05-17 15:03:36
我正在測試一個 API 并從數據庫中獲取所有數據。我將響應保存為MvcResult result = mockMvc.perform(..some code..).andReturn();我得到一個 json 作為響應。我想獲取 json 數組的長度。所以,如果我在數據庫中有 2 行,我想得到 2 作為結果?;蛘呤欠裼辛硪环N方法可以計算數據庫中存在的行數。
查看完整描述

5 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

由于您使用的是 MockMvc 而不是返回 withandReturn()您可以使用 JSONPath 支持,例如:

  mvc.perform( MockMvcRequestBuilders
  .get("/resource")
  .accept(MediaType.APPLICATION_JSON))
  .andExpect(status().isOk())
  .andExpect(MockMvcResultMatchers.jsonPath("$.length").value(2))


查看完整回答
反對 回復 2023-05-17
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

如果你想獲得 json 數組長度,就是這樣,

1.如果你導入org.json.simple.JSONArray你可以使用JSONArray.size()

2.如果你導入org.json.JSONArray你可以使用JSONArray.length()


查看完整回答
反對 回復 2023-05-17
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

假設您的回應是這樣的:


{

  result : [

     {

       "field1": "a",

       "field2": "b"

     },

     {

       "field1": "c",

       "field2": "d"

     }

  ]

}

在這種情況下,您將使用 MockMvc 編寫如下斷言:


mvc.perform(MockMvcRequestBuilders

.get("/resource")

.accept(MediaType.APPLICATION_JSON))

.andExpect(MockMvcResultMatchers.status().isOk())

.andExpect(MockMvcResultMatchers.jsonPath("$.result.length()").value(2))


查看完整回答
反對 回復 2023-05-17
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

使用com.jayway.JsonPath(你已經通過 spring-boot-starter-test 擁有了這個類)

Integer length = JsonPath.read(result.getResponse().getContentAsString(), "$.length()");


查看完整回答
反對 回復 2023-05-17
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

嘗試:

String?content?=?result.getResponse().getContentAsString();
查看完整回答
反對 回復 2023-05-17
  • 5 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號