用JSON在线解析工具解析数据的时候是正常,然后通过GsonFormat去生成对象的时候报了如下错误:
org.json.JSONException: Expected a ',' or '}' at 2441 [character 2442 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:225)
at org.json.JSONTokener.nextValue(JSONTokener.java:364)
at org.json.JSONArray.<init>(JSONArray.java:115)
at org.json.JSONTokener.nextValue(JSONTokener.java:367)
at org.json.JSONObject.<init>(JSONObject.java:210)
at org.json.JSONTokener.nextValue(JSONTokener.java:364)
at org.json.JSONObject.<init>(JSONObject.java:210)
at org.json.JSONObject.<init>(JSONObject.java:317)
at org.gsonformat.intellij.ConvertBridge.parseJSONObject(ConvertBridge.java:133)
at org.gsonformat.intellij.ConvertBridge.run(ConvertBridge.java:103)
at org.gsonformat.intellij.ui.JsonDialog.onOK(JsonDialog.java:190)
at org.gsonformat.intellij.ui.JsonDialog.access$200(JsonDialog.java:19)
at org.gsonformat.intellij.ui.JsonDialog$1.actionPerformed(JsonDialog.java:57)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6548)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
at java.awt.Component.processEvent(Component.java:6313)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4903)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:755)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
仔细查看发现json在线解析前的数据是这样的:
"contentParamJson": "{\"storeName\":\"[我是]\", \"servicePhone\":\"02788866688\"}",
json在线解析后变成这样的了:
"contentParamJson":"{"storeName":"[我是]", "servicePhone":"02788866688"}",
你会发现原本的\没有了,我这里报错的原因就是这里。
解决办法:手动去加\效率太低,这里我们可以直接使用json在线解析左边的数据去GsonFormat里面去生成对象,这样问题就解决了。