JMeter请求报Unexpected character (')'错误,如何修复?
修复JMeter脚本中JSON请求体的语法错误
兄弟,你碰到的400 Bad Request问题完全是因为请求Body里的JSON存在语法错误,Jackson解析器根本读不懂你的请求内容。咱们来一步步排查并修复:
问题根源分析
从错误提示Unexpected character (')' (code 41)): was expecting comma to separate Object entries就能看出来,JSON里多了个不该出现的右括号),而且还有引号、括号不匹配的问题。咱们看你原来的请求Body:
{ "data: [ { "gsVersion":"1.0", "stepCode":"${stepCode}", "stepName":"${stepName}", "familyId":"${familyId}", "listGeoEventAddOfStep": [ { "id":0, "geoEventCode":"${geoEventCode}", "name":"${geoEventName}")}, "description":"${geoEventDes}" } ] } ] }
这里至少有3个明显错误:
- 最外层的
"data:少了冒号,应该写成"data": listGeoEventAddOfStep数组里的对象,"name":"${geoEventName}")}多了一个右括号),应该改成"name":"${geoEventName}",- 整个JSON的大括号、中括号闭合不匹配,最后多了多余的括号
修复后的正确请求Body
把这些错误修正后,合规的JSON应该是这样的:
{ "data": [ { "gsVersion": "1.0", "stepCode": "${stepCode}", "stepName": "${stepName}", "familyId": "${familyId}", "listGeoEventAddOfStep": [ { "id": 0, "geoEventCode": "${geoEventCode}", "name": "${geoEventName}", "description": "${geoEventDes}" } ] } ] }
验证建议
你可以把修复后的JSON放到本地JSON编辑器里检查语法是否合规,确保所有引号、括号、逗号都正确匹配,再放到JMeter里运行。这样Jackson就能正常解析你的请求,不会再返回400错误了。
内容的提问来源于stack exchange,提问作者user8930504
相关产品推荐
相关产品推荐

