{ "User[]":{ "User":{ "name?":"^[0-9]+$" }, "count":3 }, "ok":false, "code":406, "msg":"GET请求,字符 name? 不合法! key:value 中的key只能关键词 '@key' 或 'key[逻辑符][条件符]' 或 PUT请求下的 'key+' / 'key-' !", "debug:info|help":"浏览器打开以下链接查看解答\n\n【APIAuto】: \n http://apijson.cn/api?type=JSON&url=http%3A%2F%2Fapijson.cn%3A8080%2Fget&json=%7B%22User%5B%5D%22%3A%7B%22User%22%3A%7B%22name%3F%22%3A%22%5E%5B0-9%5D%2B%24%22%7D%2C%22count%22%3A3%7D%7D \n\n【GitHub】: \n https://www.google.com/search?q=site%3Agithub.com%2FTencent%2FAPIJSON+++GET%E8%AF%B7%E6%B1%82%EF%BC%8C%E5%AD%97%E7%AC%A6+name%3F+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81+key%3Avalue+%E4%B8%AD%E7%9A%84key%E5%8F%AA%E8%83%BD%E5%85%B3%E9%94%AE%E8%AF%8D+%27%40key%27+%E6%88%96+%27key%5B%E9%80%BB%E8%BE%91%E7%AC%A6%5D%5B%E6%9D%A1%E4%BB%B6%E7%AC%A6%5D%27+%E6%88%96+PUT%E8%AF%B7%E6%B1%82%E4%B8%8B%E7%9A%84+%27key%2B%27+%2F+%27key-%27+%EF%BC%81 \n\n【Google】:\n https://www.google.com/search?q=GET%E8%AF%B7%E6%B1%82%EF%BC%8C%E5%AD%97%E7%AC%A6+name%3F+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81+key%3Avalue+%E4%B8%AD%E7%9A%84key%E5%8F%AA%E8%83%BD%E5%85%B3%E9%94%AE%E8%AF%8D+%27%40key%27+%E6%88%96+%27key%5B%E9%80%BB%E8%BE%91%E7%AC%A6%5D%5B%E6%9D%A1%E4%BB%B6%E7%AC%A6%5D%27+%E6%88%96+PUT%E8%AF%B7%E6%B1%82%E4%B8%8B%E7%9A%84+%27key%2B%27+%2F+%27key-%27+%EF%BC%81 \n\n【百度】:\n https://www.baidu.com/s?ie=UTF-8&wd=GET%E8%AF%B7%E6%B1%82%EF%BC%8C%E5%AD%97%E7%AC%A6+name%3F+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81+key%3Avalue+%E4%B8%AD%E7%9A%84key%E5%8F%AA%E8%83%BD%E5%85%B3%E9%94%AE%E8%AF%8D+%27%40key%27+%E6%88%96+%27key%5B%E9%80%BB%E8%BE%91%E7%AC%A6%5D%5B%E6%9D%A1%E4%BB%B6%E7%AC%A6%5D%27+%E6%88%96+PUT%E8%AF%B7%E6%B1%82%E4%B8%8B%E7%9A%84+%27key%2B%27+%2F+%27key-%27+%EF%BC%81 \n\n都没找到答案?打开这个链接 \n https://github.com/Tencent/APIJSON/issues/new?assignees=&labels=&template=--bug.md \n然后提交问题,推荐用以下模板修改,注意要换行保持清晰可读。 \n【标题】:GET请求,字符 name? 不合法! key:value 中的key只能关键词 '@key' 或 'key[逻辑符][条件符]' 或 PUT请求下的 'key+' / 'key-' ! \n【内容】: **环境信息** \n 系统: Linux 5.10.134-16.3.al8.x86_64 \n 数据库: MYSQL 5.7.22 \n JDK: 17.0.2 amd64 \n APIJSON: 7.0.3\n\n**问题描述**\nGET请求,字符 name? 不合法! key:value 中的key只能关键词 '@key' 或 'key[逻辑符][条件符]' 或 PUT请求下的 'key+' / 'key-' ! \n\n \n\nPOST http://apijson.cn:8080/get \n发送请求 Request JSON:\n ```js \n 请填写,例如 { \"Users\":{} } \n``` \n\n返回结果 Response JSON:\n ```js \n 请填写,例如 { \"Users\": {}, \"code\": 401, \"msg\": \"Users 不允许 UNKNOWN 用户的 GET 请求!\" } \n```", "time":1732287914972, "sql:generate|cache|execute|maxExecute":"0|0|0|2000", "depth:count|max":"3|5", "time:start|duration|end|parse|sql":"1732287914970|2|1732287914972|2|0", "trace:throw":"java.lang.IllegalArgumentException", "trace:stack":[{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":6023, "methodName":"getRealKey", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":3517, "methodName":"getWhereItem", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":3297, "methodName":"getWhereString", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":2918, "methodName":"getWhereString", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":4635, "methodName":"getConditionString", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":4573, "methodName":"getSQL", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":4489, "methodName":"getSQL", "nativeMethod":false },{ "className":"apijson.demo.DemoSQLConfig", "fileName":"DemoSQLConfig.java", "lineNumber":410, "methodName":"getSQL", "nativeMethod":false },{ "className":"apijson.orm.AbstractSQLExecutor", "fileName":"AbstractSQLExecutor.java", "lineNumber":184, "methodName":"execute", "nativeMethod":false },{ "className":"apijson.demo.DemoSQLExecutor", "fileName":"DemoSQLExecutor.java", "lineNumber":268, "methodName":"execute", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":2051, "methodName":"executeSQL", "nativeMethod":false },{ "className":"apijson.demo.DemoParser", "fileName":"DemoParser.java", "lineNumber":130, "methodName":"executeSQL", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":1114, "methodName":"onSQLExecute", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":952, "methodName":"executeSQL", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"executeSQL", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1217, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":597, "methodName":"onChildParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":283, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1127, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1356, "methodName":"onArrayParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":560, "methodName":"onChildParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":283, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1127, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":529, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.framework.APIJSONParser", "fileName":"APIJSONParser.java", "lineNumber":117, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.demo.DemoParser", "fileName":"DemoParser.java", "lineNumber":90, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":444, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.boot.DemoController", "fileName":"DemoController.java", "lineNumber":458, "methodName":"openGet", "nativeMethod":false },{ "className":"jdk.internal.reflect.GeneratedMethodAccessor144", "lineNumber":-1, "methodName":"invoke", "nativeMethod":false },{ "className":"jdk.internal.reflect.DelegatingMethodAccessorImpl", "fileName":"DelegatingMethodAccessorImpl.java", "lineNumber":43, "methodName":"invoke", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false },{ "className":"java.lang.reflect.Method", "fileName":"Method.java", "lineNumber":568, "methodName":"invoke", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false },{ "className":"org.springframework.web.method.support.InvocableHandlerMethod", "fileName":"InvocableHandlerMethod.java", "lineNumber":255, "methodName":"doInvoke", "nativeMethod":false },{ "className":"org.springframework.web.method.support.InvocableHandlerMethod", "fileName":"InvocableHandlerMethod.java", "lineNumber":188, "methodName":"invokeForRequest", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod", "fileName":"ServletInvocableHandlerMethod.java", "lineNumber":118, "methodName":"invokeAndHandle", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter", "fileName":"RequestMappingHandlerAdapter.java", "lineNumber":926, "methodName":"invokeHandlerMethod", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter", "fileName":"RequestMappingHandlerAdapter.java", "lineNumber":831, "methodName":"handleInternal", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter", "fileName":"AbstractHandlerMethodAdapter.java", "lineNumber":87, "methodName":"handle", "nativeMethod":false },{ "className":"org.springframework.web.servlet.DispatcherServlet", "fileName":"DispatcherServlet.java", "lineNumber":1089, "methodName":"doDispatch", "nativeMethod":false },{ "className":"org.springframework.web.servlet.DispatcherServlet", "fileName":"DispatcherServlet.java", "lineNumber":979, "methodName":"doService", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":1014, "methodName":"processRequest", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":903, "methodName":"doGet", "nativeMethod":false },{ "className":"jakarta.servlet.http.HttpServlet", "fileName":"HttpServlet.java", "lineNumber":527, "methodName":"service", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":885, "methodName":"service", "nativeMethod":false },{ "className":"jakarta.servlet.http.HttpServlet", "fileName":"HttpServlet.java", "lineNumber":614, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":206, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.tomcat.websocket.server.WsFilter", "fileName":"WsFilter.java", "lineNumber":51, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.RequestContextFilter", "fileName":"RequestContextFilter.java", "lineNumber":100, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.FormContentFilter", "fileName":"FormContentFilter.java", "lineNumber":93, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.CharacterEncodingFilter", "fileName":"CharacterEncodingFilter.java", "lineNumber":201, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardWrapperValve", "fileName":"StandardWrapperValve.java", "lineNumber":167, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardContextValve", "fileName":"StandardContextValve.java", "lineNumber":90, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.authenticator.AuthenticatorBase", "fileName":"AuthenticatorBase.java", "lineNumber":482, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardHostValve", "fileName":"StandardHostValve.java", "lineNumber":115, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.valves.ErrorReportValve", "fileName":"ErrorReportValve.java", "lineNumber":93, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardEngineValve", "fileName":"StandardEngineValve.java", "lineNumber":74, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.connector.CoyoteAdapter", "fileName":"CoyoteAdapter.java", "lineNumber":344, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.coyote.http11.Http11Processor", "fileName":"Http11Processor.java", "lineNumber":391, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.coyote.AbstractProcessorLight", "fileName":"AbstractProcessorLight.java", "lineNumber":63, "methodName":"process", "nativeMethod":false },{ "className":"org.apache.coyote.AbstractProtocol$ConnectionHandler", "fileName":"AbstractProtocol.java", "lineNumber":896, "methodName":"process", "nativeMethod":false },{ "className":"org.apache.tomcat.util.net.NioEndpoint$SocketProcessor", "fileName":"NioEndpoint.java", "lineNumber":1736, "methodName":"doRun", "nativeMethod":false },{ "className":"org.apache.tomcat.util.net.SocketProcessorBase", "fileName":"SocketProcessorBase.java", "lineNumber":52, "methodName":"run", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.ThreadPoolExecutor", "fileName":"ThreadPoolExecutor.java", "lineNumber":1191, "methodName":"runWorker", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker", "fileName":"ThreadPoolExecutor.java", "lineNumber":659, "methodName":"run", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.TaskThread$WrappingRunnable", "fileName":"TaskThread.java", "lineNumber":63, "methodName":"run", "nativeMethod":false },{ "className":"java.lang.Thread", "fileName":"Thread.java", "lineNumber":833, "methodName":"run", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false }], "@link":"http://apijson.cn:8080/api/index.html?send=false&redirect=false&type=JSON&decode=true&url=http%3A%2F%2Fapijson.cn%3A8080%2Fget&json=%7B%22User%5B%5D%22%3A%7B%22count%22%3A3%2C%22User%22%3A%7B%22name%3F%22%3A%22%5E%5B0-9%5D%2B%24%22%7D%7D%7D" }