如何在java中将字符串转换为json,其中字符串同时包含json对象和数组
大家好,我正在尝试转换字符串json,其中字符串包含json对象和数组。两个字符串都缺少大括号或引号。我不知道发生了什么错误如何在java中将字符串转换为json,其中字符串同时包含json对象和数组,java,json,Java,Json,大家好,我正在尝试转换字符串json,其中字符串包含json对象和数组。两个字符串都缺少大括号或引号。我不知道发生了什么错误 String companyid="14"; String userid="1002"; String projectid="378"; String scenarioid="1"; String xTable = "[{\"Label\
String companyid="14";
String userid="1002";
String projectid="378";
String scenarioid="1";
String xTable = "[{\"Label\":\"A\",\"Dimension\":\"0\"},{\"Label\":\"B\",\"Dimension\":\"10\"}]";
String yTable = "[{\"Label\":\"1\",\"Dimension\":\"0\"},{\"Label\":\"2\",\"Dimension\":\"10\"}]";
String zTable = "[{\"Label\":\"Floor1\",\"Dimension\":\"0\"},{\"Label\":\"Floor2\",\"Dimension\":\"10\"}]";
String grid="{\"grids\":{\"xaxis\":\""+xTable+"},{\"yaxis\":\""+yTable+"},{\"zaxis\":\""+zTable+"}";
String inJson="{\"grid\":\"" +grid + "\"}" ;
JSONObject user = new JSONObject(inJson);
System.out.println(user.getString("grid"));
错误:
Exception in thread "main" org.json.JSONException: Expected a ',' or '}' at 80 [character 81 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:451)
at org.json.JSONObject.<init>(JSONObject.java:231)
at org.json.JSONObject.<init>(JSONObject.java:320)
at JsonExcercise.main(JsonExcercise.java:20)
您得到的错误是:org.json.JSONException:应为“,”或“}” 第一步是检查“{”和“}”的数目是否匹配。 如果您查看代码:
String grid="{\"grids\":{\"xaxis\":\""+xTable+"},{\"yaxis\":\""+yTable+"},{\"zaxis\":\""+zTable+"}";
不平衡,缺少一个“}”变量网格和inJson是错误的json格式,变量中有多余的前引号,您可以通过在线web工具进行验证,以下代码是正确的
String companyid="14";
String userid="1002";
String projectid="378";
String scenarioid="1";
String xTable = "[{\"Label\":\"A\",\"Dimension\":\"0\"},{\"Label\":\"B\",\"Dimension\":\"10\"}]";
String yTable = "[{\"Label\":\"1\",\"Dimension\":\"0\"},{\"Label\":\"2\",\"Dimension\":\"10\"}]";
String zTable = "[{\"Label\":\"Floor1\",\"Dimension\":\"0\"},{\"Label\":\"Floor2\",\"Dimension\":\"10\"}]";
String grid="{\"grids\":[{\"xaxis\":"+xTable+"},{\"yaxis\":"+yTable+"},{\"zaxis\":"+zTable+"}]}";
String inJson="{\"companyid\":\"" +companyid + "\",\"userid\":\"" +userid + "\",\"projectid\":\"" +projectid + "\",\"scenarioid\":" +scenarioid + ",\"grid\":" +grid + "}" ;
JSONObject user = new JSONObject(inJson);
System.out.println(user.getString("companyid"));
您可以了解json数组和json对象下面的转义序列问题是
字符串inJson={\grid\:\'+grid+\'} 第1行字符81无助于定位问题?System.out.printlnuser.getStringgrid;正在获取错误您可以使用user.getgrid或injson为:字符串injson={\companyid\:\+companyid+\,\userid\:\+userid+\,\projectid\:\+projectid+\,\scenarioid\:+scenarioid+,\grid\:\'+grid+\};