java - 使用反斜杠反序列化时出现 Java JSONObject 错误
问题描述
我正在运行接收以下请求的 Java Servlet 网络服务器:
http://localhost:8080/ForVen/Recebimento/recebeDispositivo.jsp?lista={"dispositivo":[{"Id":0,"DataMod":"2021-09-28T16:55:55.3528819-03:00" ,"SeSincronizar":0,"NrVersaoReg":1,"DataSincronizacao":"2021-09-28T16:55:55.3538812-03:00","Guid":"BFEBFBFF000206A7","TipoDispositivo":0,"URL" :"","VendorId":1}]}
当我发送它时,它给了我以下错误:
javax.servlet.ServletException: org.json.JSONException: {"dispositivo":[{"Id":0,"DataMod":"2021-09-28T16:55:55.3528819-03:00" 的字符 1 处缺少值,"SeSincronizar":0,"NrVersaoReg":1,"DataSincronizacao":"2021-09-28T16:55:55.3538812-03:00","Guid":"BFEBFBFF000206A7","TipoDispositivo":0,"URL" :"","VendorId":1}]}
如果我尝试发送相同的请求,但使用“格式化”的 JSON,它可以工作。
http://localhost:8080/ForVen/Recebimento/recebeDispositivo.jsp?lista={"dispositivo":[{"Id":0,"DataMod":"2021-09-28T16:55:55.3528819-03:00" ,"SeSincronizar":0,"NrVersaoReg":1,"DataSincronizacao":"2021-09-28T16:55:55.3538812-03:00","Guid":"BFEBFBFF000206A7","TipoDispositivo":0,"URL" :"","VendorId":1}]}
这是我反序列化 JSON 的方式:
JSONObject jso = new JSONObject(myIncomingJson);
我不知道它是否与某些 Apache 配置有关,但我希望如此,更改所有客户端请求会非常痛苦。
解决方案
正如 f1sh 所说,我必须对在 URL 上发送的 JSON 进行编码,我的错误是我没有看到它。:)
URL应该是这样的:
推荐阅读
- leaflet - 在传单中获取海拔高度
- php - 无法验证 laravel 中的嵌套数组
- c++ - 在 C++ 中,字符串类型对象是否像 C 字符串对象一样是字符数组?
- unity3d - 调用 UI 游戏无法正常运行?
- python - 如何手动关闭 websocket
- reactjs - serve -s build 指定端口号
- android - 模拟返回 Kotlin Coroutines Deferred 类型的方法的返回值
- javascript - 如何将 DIV 和 SCRIPT 从单个 HTML 模板插入页面
- php - Laravel PSR-16 缓存。使 \Predis\Client 适应 \Redis?
- swift - SQLite - 删除包含字符串的行